版权声明:有不正确的地方,还望各位指正指导,Thanks! https://blog.csdn.net/a544258023/article/details/86061958
集群之间很多信息是通过主机名进行访问,因此配置自动化配置/etc/hosts就显得尤为关键,注意配置/etc/hosts要在集群自动化安装之前进行。
编写主机hosts
编辑/opt/ansible/hosts文件添加集群所有机器IP
[all]
172.18.18.120
172.18.18.121
172.18.18.122
编写参数配置main.yml
编辑/opt/ansible/roles/vars/main.yml文件,添加变量
AnsibleDir: /home/llh/ansible
编写执行文件init.yml
编辑新建/opt/ansible/yml/init.yml文件,添加内容如下:
扫描二维码关注公众号,回复:
4824662 查看本文章
- hosts: all remote_user: root roles: - roles tasks: - name: add localhost4 local_action: shell echo "127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4" > {{AnsibleDir}}/roles/templates/hosts.j2 run_once: true - name: add localhost6 local_action: shell echo "::1 localhost localhost.localdomain localhost6 localhost6.localdomain6" >> {{AnsibleDir}}/roles/templates/hosts.j2 run_once: true - set_fact: ipaddress={{hostvars[inventory_hostname].ansible_default_ipv4.address}} #获取各个节点IP地址并设置成变量 - set_fact: hostname={{hostvars[inventory_hostname].ansible_facts.hostname}} #获取各个节点主机名并设置成变量 - name: add host record #添加所有ipaddress hostname追加到本机 local_action: shell echo {{ipaddress}} {{hostname}} >> {{AnsibleDir}}/roles/templates/hosts.j2 - name: copy hosts.j2 to all #将新的hosts.j2分发到各个节点上 template: src={{AnsibleDir}}/roles/templates/hosts.j2 dest=/tmp/hosts |
执行HOSTS安装部署
ansible-playbook -i hosts yml/init.yml