Como obter o nome do host da máquina atual, conforme definido no arquivo Ansible hosts?

166

Estou configurando um manual Ansible para configurar alguns servidores. Existem algumas tarefas que eu só quero executar se o host atual for meu host de desenvolvimento local, chamado "local" no arquivo de hosts. Como posso fazer isso? Não consigo encontrá-lo em nenhum lugar da documentação.

Eu tentei isso quando instrução, mas falha porque ansible_hostnameresolve para o nome do host gerado quando a máquina é criada, não o que você define no seu arquivo hosts.

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

Respostas:

2

Você pode limitar o escopo de um manual alterando o cabeçalho de hosts em suas execuções sem depender do rótulo de host especial 'local' em seu inventário. O Localhost não precisa de uma linha especial em estoques.

- name: run on all except local
  hosts: all:!local
bbaassssiiee
fonte
hosts: !localhostprovavelmente funciona também como por exemplo --limit '!dev'obras
timdiels
0

Esta é uma alternativa:

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