Quero inserir linha ou atualizar minha /etc/hosts
se houver novos dados. Meu manual a seguir está usando lineinfile
, no entanto, tive o problema de que quando um dos meus servidores obtivesse um novo IP, o módulo basicamente adicionaria uma nova linha contendo o novo IP, o que é bom, mas o antigo ainda estaria presente.
Eu gostaria de fazer isso da maneira mais organizada possível, espero usar apenas 1 módulo, não a combinação de lineinfile
& replace
.
Exemplo de manual existente
- ansible.builtin.lineinfile:
path: /etc/hosts
line: "{{ hostvars[item].ansible_all_ipv4_addresses.0 }} {{ hostvars[item].ansible_hostname }} {{ hostvars[item].ansible_hostname }}"
loop: "{{ groups['web'] }}"
Então... basicamente acabo com:
/etc/hosts
192.168.1.1 web1.example.com web1
192.168.1.2 web2.example.com web2
192.168.1.3 web3.example.com web3
Novo web2 provisionado:
192.168.1.1 web1.example.com web1
192.168.1.2 web2.example.com web2
192.168.1.3 web3.example.com web3
192.168.1.4 web2.example.com web2