¿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"

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

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.