Comment obtenir le nom d'hôte de la machine actuelle tel que défini dans le fichier d'hôtes Ansible?


166

Je mets en place un playbook Ansible pour configurer quelques serveurs. Il y a quelques tâches que je souhaite exécuter uniquement si l'hôte actuel est mon hôte de développement local, nommé «local» dans mon fichier hosts. Comment puis-je faire ceci? Je ne le trouve nulle part dans la documentation.

J'ai essayé cette instruction when, mais elle échoue car ansible_hostnameelle correspond au nom d'hôte généré lors de la création de la machine, et non à celui que vous définissez dans votre fichier d'hôtes.

- name: Install this only for local dev machine
  pip: name=pyramid
  when: ansible_hostname == "local"

Réponses:



2

Vous pouvez limiter la portée d'un playbook en changeant l'en-tête d'hôtes dans ses jeux sans compter sur votre étiquette d'hôte spéciale «local» dans votre inventaire. Localhost n'a pas besoin d'une ligne spéciale dans les inventaires.

- name: run on all except local
  hosts: all:!local

hosts: !localhostfonctionne probablement aussi comme par exemple --limit '!dev'fonctionne
timdiels

0

Ceci est une alternative:

- name: Install this only for local dev machine
  pip: name=pyramid
  delegate_to: localhost
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.