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