Comecei a aprender e usar o ansible para configurar meus servidores de teste e produção. Uma coisa que gostaria de fazer é configurar /etc/hosts por meio do arquivo de inventário.
Parece que isso é possível. Aqui está um desses usos: https://gist.github.com/rothgar/8793800
No entanto, sou um pouco verde para o Ansible e não entendo. Alguém pode explicar em inglês simples como faço isso funcionar na prática?
Por exemplo, se meu arquivo de inventário contiver.
[compute]
1.2.3.4
5.6.7.8
[db]
2.3.4.5
6.7.8.9
10.11.12.13
[all]
compute
db
[all:vars]
...
Eu gostaria de dizer com consistência que meu arquivo hosts após executar o playbook contido
2.3.4.5 db1
6.7.8.9 db2
10.11.12.13 db3
1.2.3.4 compute1
5.6.7.8 compute2
Isso é possível?
Você pode gerar suas entradas de hosts a partir de um modelo. Percorra a lista de grupos, descarte grupos como
all
eungrouped
e, em seguida, percorra a lista de hosts em cada grupo:O acima está usando
{{host}}
para o endereço IP, porque isso me permite testá-lo em meu sistema, mas você provavelmente preferiria{{hostvars[host]['ansible_default_ipv4']['address']}}
em um ambiente real, a menos que tenha certeza de que está sempre usando endereços IP em seu inventário.No arquivo de inventário:
No playbook.yaml