1. 什么是ansible?
2. 安装ansible
ansible官方文档:http://www.ansible.com.cn/
- server4:可以上网(真机开启路由和地址伪装,server4上配置dns)
- server4:作为ansible的管理主机
[root@server4 ~]# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
[root@server4 ~]# cd /etc/yum.repos.d/
[root@server4 yum.repos.d]# ls
epel.repo epel-testing.repo redhat.repo yum.repo
[root@server4 yum.repos.d]# yum install ansible
3. 使用ansible
- ansible的清单文件(hosts)
[root@server4 yum.repos.d]# cd /etc/ansible/
[root@server4 ansible]# ls
ansible.cfg hosts roles
- 管理主机
[root@server4 ansible]# vim hosts # 使用ini的方式
[root@server4 ansible]# ansible 172.25.60.5 -m ping #-m调用ansible模块,在ping172.25.60.5的时,确保至少ssh连同过一次
172.25.60.5 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
- 用别名管理
[root@server4 ansible]# vim hosts
[root@server4 ansible]# ansible server5 -m ping
server5 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
- 先免密在使用ansible
[root@server4 ansible]# ssh_kengen
[root@server4 ansible]# ssh-copy-id server4 --->yes
[root@server4 ansible]# ssh-copy-id server6 --->yes
[root@server4 ansible]# ssh-copy-id server6 --->yes
[root@server4 ansible]# vim hosts
[root@server4 ansible]# ansible server6 -m ping
server6 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
[root@server4 ansible]# ansible all -m ping # 一次性操作清单中的说有主机
- 设置分块访问
[root@server4 ansible]# vim hosts
[root@server4 ansible]# ansible A -m ping
172.25.60.5 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
172.25.60.6 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
[root@server4 ansible]# ansible B -m ping
172.25.60.3 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
- 用解析访问
[root@server4 ansible]# vim hosts
[root@server4 ansible]# vim /etc/hosts
172.25.60.5 servera
172.25.60.6 serverb
[root@server4 ansible]# ansible A -m ping
servera | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
serverb | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
- 子组
[root@server4 ansible]# vim hosts # pro:children表示pro中的子组
[root@server4 ansible]# ansible pro -m ping
172.25.60.5 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}
172.25.60.3 | SUCCESS => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"changed": false,
"ping": "pong"
}