我的手冊包含另一個主題時遇到了一些問題。我使用劇本來推出一個乾淨的虛擬機。之後,我想運行另一個劇本,以某種方式配置虛擬機。我已將新主機添加到庫存並具有ssh訪問權限。包含帶有變量名稱的演示手冊,該變量名稱在另一個主機上定義
我們的團隊爲每個servertype建立了一個項目。我在早期階段(針對本地主機運行)檢索了正確的項目路徑,並使用set_fact將其置於「servertype_project」中。 我希望這個工作(在劇本層面,針對新的虛擬機上運行):
- name: "Run servertype playbook ({{ project }}) on VM"
vars:
project: "{{ hostvars['localhost']['servertype_project'] }}"
include: "{{ project }}/ansible/playbook.yml"
但此消息未通過語法檢查:
錯誤! {{HOSTVARS [ '本地主機'] [ 'servertype_project']}}: 'HOSTVARS' 是未定義
我可以檢索正確的字符串,如果我指的是{{HOSTVARS [ '本地主機'] [ 'servertype_project'] }}從一個任務中,而不是從我可以包含另一個劇本的級別。
由於該值是在運行時確定的,我認爲set_fact是存儲變量的正確方法,但該方法是主機特定的。有什麼辦法可以將它傳遞給該主機?還是我錯過了一些全球性的類似var的選項?