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


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}}

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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.