Ansible
Ansible 在任務名稱中使用 inventory_hostname 或 ansible_hostname
我正在編寫滾動升級手冊,並想列印出目前已升級主機的主機名。
我在任務名稱中輸入了
inventory_hostname
andansible_hostname
但這不起作用- name: upgrade softare on {{inventory_hostname}} - name: current host is {{ansible_hostname}}
調試工作正常
- name: Test a variable debug: var=inventory_hostname TASK: [Test a variable] ******************************************************* ok: [SERV14] => { "var": { "inventory_hostname": "SERV14" } }
那麼我應該怎麼做才能在任務名稱描述中使用這些變數。
謝謝
從 v2.0 開始,Ansible 支持在任務/處理程序名稱中進行變數替換:https ://github.com/ansible/ansible/issues/10347 ,因此這些範例將按預期工作:
- name: upgrade software on {{inventory_hostname}} - name: current host is {{ansible_hostname}}
我認為你應該在
{{ ansible_hostname }}
之後寫tasks:
,因為在此之前它還沒有收集事實,所以它不能給出結果。我在這個概念上可能是錯誤的,但在實踐中它是成功的。tasks: - name: Install the httpd on {{ ansible_hostname }} yum: name: httpd state: latest