Come ottenere il nome host della macchina corrente come definito nel file degli host Ansible?


166

Sto configurando un playbook Ansible per configurare un paio di server. Ci sono un paio di attività che voglio eseguire solo se l'host corrente è il mio host di sviluppo locale, chiamato "local" nel mio file hosts. Come posso fare questo? Non riesco a trovarlo da nessuna parte nella documentazione.

Ho provato questa istruzione quando, ma non riesce perché si ansible_hostnamerisolve con il nome host generato quando viene creata la macchina, non con quello definito nel file hosts.

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

Risposte:



2

Puoi limitare l'ambito di un playbook modificando l'intestazione degli host nelle sue riproduzioni senza fare affidamento sulla tua etichetta host speciale "locale" nel tuo inventario. Localhost non ha bisogno di una linea speciale negli inventari.

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

hosts: !localhostprobabilmente funziona anche come ad esempio --limit '!dev'opere
timdiels

0

Questa è un'alternativa:

- name: Install this only for local dev machine
  pip: name=pyramid
  delegate_to: localhost
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.