2014-07-03 31 views
6

在一個角色中,我試圖從另一個角色加載一些變量。 (如果這個角色被列入當前的播放,變量將是訪問,但它不是那麼他們不是)在角色任務中包含變量

所以,我想這一點:

- include_vars: ../../another_role/defaults/main.yml 

但它不工作,沒有錯誤,但變量仍未定義。 所以我試圖將智能和文件符號鏈接到vars/another_role_defaults.yml中的作用,我想使用VAR和然後包括像這樣:

- include_vars: another_role_defaults.yml 

同樣的結果,沒有錯誤(爲什麼沒有拋出錯誤,如果文件無法找到??),但變量仍未定義。我也嘗試過這種方法,但仍然沒有雪茄。

- include_vars: ../vars/another_role_defaults.yml 

我在做什麼錯?

+0

您是否看過詳細輸出? – Mxx

+0

是的,'include_vars'似乎沒有產生任何輸出。 –

+0

我錯了,看到我的答案... –

回答

8

這是到底我自己的錯......我使用debug模塊和tags這樣測試的:

- include_vars: ../../another_role/defaults/main.yml 

- debug: msg={{ variable }} 
    tags: foo 

,然後執行類似這樣的劇本:

ansible-playbook -vvvv playbook.yml --tags foo 

一旦我遺漏了標籤,它就起作用了(當然)。問題是我應該添加標籤到include_vars命令以及如下所示:

- include_vars: ../../another_role/defaults/main.yml 
    tags: foo 

- debug: msg={{ variable }} 
    tags: foo 
+1

偉大的「功能」。剛剛在此花了半個小時。感謝您發佈回覆。 – SebK