我有一個發揮如下Ansible如何引用項目中的Jinja2模板
- name: create the unison preference file
template:
src: default.prf.j2
dest: /root/.unison/{{ item }}.prf
with_items: groups['ndeployslaves']
如下
root = /home
root = ssh://[email protected]{{ item }}//home
ignore = Path virtfs
ignore = Path */mail
項變量不工作的default.prf.j2文件的內容在模板和我得到錯誤
任務[unison_master:創建統一prefrence文件] ************************ 致命的: [127.0.0.1]:失敗! => {「failed」:true,「msg」:「'item'is undefined」}
如何參考劇本中使用的模板內的項目?
你確定'ndeployslaves'是否正確設置了你當前的劇本?你可以在模板渲染任務之前添加一個調試任務並打印該變量,只是爲了驗證它的內容是否如你所期望的那樣? – fishi
我的意思是打印'groups ['ndeployslaves']' – fishi
任務[unison_master:debug this]的內容*************************** ******************* [棄權警告]:不推薦使用裸變量。更新您的Playbook,以便環境值使用完整變量語法 ('{{groups ['ndeployslaves']}'')。 此功能將在未來版本中刪除。可以通過在ansible.cfg中設置 deprecation_warnings = False來禁用棄用警告。 ok:[127.0.0.1] =>(item = cpanel.host.net)=> { 「item」:「cpanel.sysally.net」, 「msg」:「Hello world!」 } {「failed」:true,「msg」:「'item'is undefined」} –