ansible批量管理服务器,ansible-playbook

ansible在实际管理过程中是不能直接改配置文件操作的,我们需要自己创建一个文件夹,将关键配置写进去,还要创建主机列表,名称根据配置文件中的来创建:

[root@ansible ~]# mkdir /opt/xxoo

[root@ansible ~]# cd /opt/xxoo

[root@ansible ~]# vim ansible.cfg

[defaults]

inventory  = /opt/xxoo/hosts                 //定义主机列表
host_key_checking = False                  //不让每次对主机操作的时候提示,应为它会每台都提示,我们需要关掉它

[root@ansible xxoo]#vim es.yml 

---
- hosts: es1,es2,es3
  remote_user: root
  tasks:
    - copy:
        src: local.repo
        dest: /etc/yum.repos.d/local.repo
        owner: root
        group: root
        mode: 0644

    - name: install the latest version of Apache
      yum:
        name: elasticsearch
        state: installed

    - name: install java-1.8.0-openjdk.x86_64
      yum:
        name: java-1.8.0-openjdk.x86_64
        state: installed
      tags: openjdk
      notify:
           restart es

    - template:
        src: elasticsearch.yml
        dest: /etc/elasticsearch/elasticsearch.yml
        owner: root
        group: root
        mode: 0644
      tags: es_change
      notify:
        - restart es

  handlers:
    - name: restart es
      service:
        name: elasticsearch
        state: restarted
        enabled: yes

用ansible同时管理多台服务器:

[root@ansible xxoo]#ansible-playbook es.yml

我们在es.yml文件中定义了,tags和handlers,所以我们可以ansible只执行,特定的模块命令,以避免命令的重复,提高代码利用率:

[root@ansible xxoo]#ansible-playbook es.yml -t openjdk

猜你喜欢

转载自blog.csdn.net/sxjwcs/article/details/92610821