Como imprimir o nome do host atual de um host em ansible

12

Eu escrevi uma função para editar o motd quando o usuário entra na máquina, mas quero personalizar o motd para imprimir o nome do host da máquina

Qual variável eu uso? ou como faço isso? modelo? como? Eu usei o copy modulepara o arquivo motd

Então, por exemplo, eu quero poder dizer "bem-vindo ao $ hostname". Como analiso esse hostname usando ansible?

conceder alfaiate
fonte

Respostas:

20

Você precisa usar o modelo -module para isso.

Aqui está um exemplo de tarefa:

- name: Create motd
  template: src="motd.j2" dest="/etc/motd"

O arquivo motd.j2 (colocado no subdiretório de modelos da sua função) pode ficar assim:

Welcome to host {{ansible_hostname}}!

{{ansible_hostname}} será então substituído pelo nome do host.

Certifique-se de " reunir fatos " em sua função, caso contrário a variável estará vazia.

rndmh3ro
fonte
Como faço para "reunir fatos" .. obrigado?
tailor concessão
funciona obrigado .. mas o que você quer dizer com "reunir fatos"?
tailor concessão
Adicionei dois links à documentação para coletar fatos.
Rndmh3ro 17/02/2015
1
ansible_eth0.ipv4.addresspercebi isso depois de algum searching..which sério suga ... ansible deve saber que há variáveis muito importantes que devem ser mais fáceis de encontrar e ser mencionado claramente no site doc
tailor concessão
1
Se você procurar por "endereço IP" nos documentos ansible, poderá encontrá-lo facilmente no primeiro link. Há até um parágrafo inteiro que mostra duas maneiras diferentes de como obter o endereço de um host!
Rdmh3ro