2017-06-21 125 views
0

我有一些變數我想設置(出於乾燥的原因)在一個完整的劇本中。這些變量中的每一個都依賴於較早的變量。下面是一個簡單的例子,有兩個變量,但在我的真實情況有更多:是否有一種緊湊的方法來定義因變量?

- set_fact: 
    current_user: "{{ lookup('env', 'USER') }}" 

- set_fact: 
    repository_root: /home/{{ current_user }}/code/devops 

有了更多的變數,這是一個有點冗長,重複set_fact:線每個變量。不幸的是,如果我把它們合併成以下:

- set_fact: 
    current_user: "{{ lookup('env', 'USER') }}" 
    repository_root: /home/{{ current_user }}/code/devops 

current_user不當時repository_root的表達式求值定義,它失敗。

是否有表達許多變量更簡潔的方式依賴於劇本中以前的變量?

回答

1

你確定你在這種情況下,需要set_fact

可以在清單或播放定義這個變量瓦爾:

current_user: "{{ lookup('env', 'USER') }}" 
repository_root: /home/{{ current_user }}/code/devops 

他們將進行評估(和鏈接,如果需要的話)時才使用。

+0

我沒有想過把他們打的變量,這可能是一個好主意。 – BlackVegetable

+0

這的確適用於我的使用模式。我想知道它們是否按照與定義不同的順序使用,如果它會根據需要進行評估或者只是窒息。好吧。這屬於另一個問題。謝謝。 – BlackVegetable

相關問題