Kemungkinan menggunakan inventory_hostname atau ansible_hostname dalam nama tugas

19

Saya sedang menulis buku pedoman peningkatan versi bergulir dan ingin mencetak nama host dari host saat ini telah ditingkatkan.

Aku meletakkan inventory_hostnamedan ansible_hostnamedalam nama tugas tapi itu tidak bekerja

- name: upgrade softare on {{inventory_hostname}}
- name: current host is {{ansible_hostname}}

debug berfungsi dengan baik

- name: Test a variable
  debug: var=inventory_hostname

TASK: [Test a variable] ******************************************************* 
ok: [SERV14] => {
    "var": {
        "inventory_hostname": "SERV14"
    }
}

Jadi apa yang harus saya lakukan untuk dapat menggunakan variabel-variabel itu dalam deskripsi nama tugas.

Terima kasih

Tanya dan Belajar
sumber
4
Saat ini, penggantian variabel tidak dapat dilakukan atas nama. Lihat di sini
cuonglm

Jawaban:

27

Mulai dari v2.0 Ansible mendukung penggantian variabel dalam nama tugas / penangan: https://github.com/ansible/ansible/issues/10347 , jadi contoh ini akan berfungsi seperti yang diharapkan:

- name: upgrade software on {{inventory_hostname}}
- name: current host is {{ansible_hostname}}
anlar
sumber
0

Saya pikir Anda harus menulis {{ ansible_hostname }}setelah tasks:, karena sebelum itu belum mengumpulkan fakta sehingga tidak bisa memberikan hasilnya. Saya mungkin salah konsep tetapi dalam prakteknya itu berhasil.

tasks:
  - name: Install the httpd on {{ ansible_hostname }}
    yum: 
      name: httpd 
      state: latest

buku pedoman

mainkan output

pranav kumar
sumber