Відповідь використовуйте в імені завдання inven_hostname або ansible_hostname


19

Я пишу прокручувану програму оновлення і хочу роздрукувати ім'я хоста поточного хоста, яке оновлено.

Я поставив inventory_hostnameі ansible_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"
    }
}

Отже, що мені робити, щоб мати можливість використовувати ці змінні в описах імен завдань.

Спасибі


4
Наразі заміну змінної неможливо здійснити на ім'я. Дивіться тут
cuonglm

Відповіді:


27

Починаючи з v2.0 Ansible підтримує підстановку змінної у назвах завдань / обробника: https://github.com/ansible/ansible/isissue/10347 , тож ці приклади працюватимуть як слід:

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

0

Я думаю, ви повинні написати {{ ansible_hostname }}після цього tasks:, тому що до цього ще не зібрані факти, тому це не може дати результат. Я можу помилитися в цій концепції, але на практиці це було успішно.

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

ігровий зошит

відтворити вихід

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.