Utilisation possible de nom_hôte_inventaire ou nom_hôte ansible dans le nom de la tâche


19

J'écris un playbook de mise à niveau progressive et je voudrais imprimer le nom d'hôte de l'hôte actuel mis à niveau.

Je mets inventory_hostnameet ansible_hostnamedans les noms de tâches mais ça n'a pas marché

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

le débogage fonctionne bien

- name: Test a variable
  debug: var=inventory_hostname

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

Alors, que dois-je faire pour pouvoir utiliser ces variables dans les descriptions de nom de tâche.

Merci


4
Actuellement, la substitution de variable ne peut pas être effectuée dans le nom. Voir ici
cuonglm

Réponses:


27

À partir de la version 2.0, Ansible prend en charge la substitution de variables dans les noms de tâche / gestionnaire: https://github.com/ansible/ansible/issues/10347 , donc ces exemples fonctionneront comme prévu:

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

0

Je pense que vous devriez écrire {{ ansible_hostname }}après tasks:, car avant cela, il n'a pas encore rassemblé les faits, donc il ne peut pas donner le résultat. Je me trompe peut-être sur le concept, mais en pratique, il a réussi.

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

playbook

lire la sortie

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.