¿Cómo obtener el nombre de host de la máquina actual como se define en el archivo de hosts Ansible?

166

Estoy configurando un libro de jugadas Ansible para configurar un par de servidores. Hay un par de tareas que solo quiero ejecutar si el host actual es mi host de desarrollo local, llamado "local" en mi archivo de hosts. ¿Cómo puedo hacer esto? No puedo encontrarlo en ninguna parte de la documentación.

He intentado esto cuando la declaración, pero falla porque ansible_hostnameresuelve el nombre de host generado cuando se crea la máquina, no el que usted define en su archivo de hosts.

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

Respuestas:

2

Puede limitar el alcance de un libro de jugadas cambiando el encabezado de los hosts en sus reproducciones sin depender de su etiqueta de host especial 'local' en su inventario. Localhost no necesita una línea especial en inventarios.

- name: run on all except local
  hosts: all:!local
bbaassssiiee
fuente
hosts: !localhostprobablemente funciona también como, por ejemplo, --limit '!dev'funciona
Timdiels
0

Esta es una alternativa:

- name: Install this only for local dev machine
  pip: name=pyramid
  delegate_to: localhost
bbaassssiiee
fuente