1.配置主机清单
下表列出了有关四个受管主机的信息。您将根据主机的用途、所在的城市以及它所属的部署环境,将每个主机分配给多个组以进行管理。此外,美国城市组(罗利和山景城)必须设为组us的子项(children),这样美国的主机就可以作为一 个组进行管理。
| 主机名称 | 用途 | 位置 | 运行环境 |
| ---------------------- - | --------- | ------------------ | --------------- |
| servera.lab.example.com | Web服务器 | 罗利raleigh | 开发development |
| serverb.lab.example.com | Web服务器 | 罗利 | 测试testing |
| serverc.lab.example.com | Web服务器 | 山景城mountainview | 生产production |
| serverd.lab.example.com | Web服务器 | 伦敦london | 生产 |
[root@server ~]# cat /etc/ansible/hosts
node1
[web]
192.168.10.136
servera.lab.example.com
serverb.lab.example.com
serverc.lab.example.com
serverd.lab.example.com
[dns]
node1.example.com
[servers:children]
web
dns
[raleigh]
servera.lab.example.com
serverb.lab.example.com
[mountainview]
serverc.lab.example.com
[london]
serverd.lab.example.com
[development]
servera.lab.example.com
[testing]
serverb.lab.example.com
[production]
serverc.lab.example.com
serverd.lab.example.com
[us:children]
raleigh
mountainview
2.实现ansible配置的四个案例
案例一:ansible使用ssh连接受管主机,一般不建议用管理用户,要求通过普通用户student进行链接
[root@server ~]# cat ansible.cfg
[defaults]
inventory=/etc/ansible/hosts
remote_user=student
ask_pass=True
host_key_checking=False
在客户端主机建立student用户
[root@server ~]# ansible all -a ‘whoami’
SSH password:
node1.example.com | CHANGED | rc=0 >>
student
192.168.10.136 | CHANGED | rc=0 >>
student
node1 | CHANGED | rc=0 >>
student
案例二: 关闭主机秘钥验证
[root@server ~]# cat ansible.cfg
[defaults]
inventory=/etc/ansible/hosts
remote_user=student
ask_pass=False
host_key_checking=False
[root@server ~]# ansible all -ka ‘whoami’
SSH password:
node1 | CHANGED | rc=0 >>
student
node1.example.com | CHANGED | rc=0 >>
student
192.168.10.136 | CHANGED | rc=0 >>
student
案例三:主机免密登陆
[root@server ~]# cat ansible.cfg
[defaults]
inventory=/etc/ansible/hosts
remote_user=student
ask_pass=False
;host_key_checking=False
[root@server ~]# ssh-copy-id -i student@node1
[root@server ~]# ansible all -a ‘whoami’
node1.example.com | CHANGED | rc=0 >>
student
node1 | CHANGED | rc=0 >>
student
192.168.10.136 | CHANGED | rc=0 >>
student
案例四:远程用户sudo提权
受控主机
[root@node1 ~]# vim /etc/sudoers
root ALL=(ALL) ALL
student ALL=(ALL) NOPASSWD: ALL
[root@server ~]# ansible node1 -a 'sudo useradd user1 ’
node1 | CHANGED | rc=0 >>