我想有一個主要的劇本,其中包括其他劇本。是否可以將變量傳遞給包含playbook的變量?將變量傳遞給包含的playbook?
正常的語法,用於傳遞變量包括任務不工作(見下文)
- include: someplaybook.yml variable=value
和
- include: someplaybook.yml
vars:
variable: value
我跑v2.0.2.0。
我想有一個主要的劇本,其中包括其他劇本。是否可以將變量傳遞給包含playbook的變量?將變量傳遞給包含的playbook?
正常的語法,用於傳遞變量包括任務不工作(見下文)
- include: someplaybook.yml variable=value
和
- include: someplaybook.yml
vars:
variable: value
我跑v2.0.2.0。
我發現唯一缺少的是引號。
- include: someplaybook.yml variable='value'
它適用於我,也應該爲你工作。如果不分享你面對的錯誤。
確保您在角色的任務中定義了此變量「變量」,並且從這裏您只是將該值傳遞給該變量。
另外,我建議你閱讀這一點, http://docs.ansible.com/ansible/latest/playbooks_reuse.html ,並嘗試在這種情況下使用的角色,這將有助於在這樣的情況下,如果你想包括一個主劇本/導入多個劇本。 關於將值傳遞給include語句,您可以將其添加到角色的變量main.yml中。 或者,如果要傳遞的變量是單個主劇本中前一個任務的結果,請使用'register'並將輸出保存爲變量。
- debug: msg="{{result.stdout_lines}}"
這裏,結果是註冊變量。 使用調試模塊準確知道你想傳遞給劇本的內容。 希望這有助於。
當我問這個問題時,我不記得確切的上下文,但是如果你閱讀關於原始問題的評論,我很清楚,角色不能用來解決這個問題。我已經在使用角色 - 這與角色能夠處理的情況略有不同。我忘記了確切的細節。 – CamHart
你知道角色嗎?這是什麼正常的語法不起作用? – Nasr
就我所知,變量在整個Playbook的運行時間範圍內是全局的,所以你只需要在任意點定義變量 – ydaetskcoR
@Nasr是的我知道角色 - 他們在這種情況下不會幫助。我添加了正常的語法。 Ansible對不同類型的變量有不同的範圍。簡單地使用set_facts不起作用。 – CamHart