Ansible自动化部署新hosts文件
模板文件hosts.j2
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
{%for i in groups.all%}
{{hostvars[i].ansible_default_ipv4.address}} {{hostvars[i].ansible_fqdn}} {{hostvars[i].ansible_hostname}}
{%endfor%}
部署剧本
deploy-hosts.yml
---
- name: deploy new hosts
hosts: all
become: true
tasks:
- name: begin deploy new hosts
template:
src: hosts.j2
dest: /etc/hosts
执行剧本
ansible-playbook deploy-hosts.yml
验证结果
ansible all -m shell -a "cat /etc/hosts"
192.168.174.145 | CHANGED | rc=0 >>
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.174.142 localhost.localdomain controll
192.168.174.143 localhost.localdomain node1
192.168.174.144 localhost.localdomain node2
192.168.174.145 localhost.localdomain node3
192.168.174.144 | CHANGED | rc=0 >>
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.174.142 localhost.localdomain controll
192.168.174.143 localhost.localdomain node1
192.168.174.144 localhost.localdomain node2
192.168.174.145 localhost.localdomain node3
192.168.174.143 | CHANGED | rc=0 >>
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.174.142 localhost.localdomain controll
192.168.174.143 localhost.localdomain node1
192.168.174.144 localhost.localdomain node2
192.168.174.145 localhost.localdomain node3
192.168.174.142 | CHANGED | rc=0 >>
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.174.142 localhost.localdomain controll
192.168.174.143 localhost.localdomain node1
192.168.174.144 localhost.localdomain node2
192.168.174.145 localhost.localdomain node3