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

集群之间很多信息是通过主机名进行访问,因此配置自动化配置/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文件,添加内容如下: 

- 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  

 

文章目录:

  • Ansible入门篇:playbook的使用 
  • Ansible入门篇(一):环境的准备
  • Ansible入门篇(二):SSH配置免密互信
  • Ansible入门篇(三):JDK自动化安装
  • Ansible入门篇(四):Scala自动化安装
  • Ansible入门篇(五):Zookeeper自动化安装
  • Ansible入门篇(六):Kafka自动化安装
  • Ansible入门篇(七):Hadoop自动化安装
  • Ansible入门篇(八):Spark自动化安装
  • Ansible入门篇(九):ElasticSearch自动化安装
  • Ansible入门篇(十):集群hosts自动化配置

你可能感兴趣的:(ansible)