Ansible入门篇(十):集群hosts自动化配置

版权声明:有不正确的地方,还望各位指正指导,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  

猜你喜欢

转载自blog.csdn.net/a544258023/article/details/86061958
今日推荐