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 ~]# cd /home
[root@server home]# vim /ansible.cfg 
[defaults]
inventory=/home/inventory

[root@server home]# vim inventory
[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

[root@server home]# ansible us --list-hosts
  hosts (3):
    servera.lab.example.com
    serverb.lab.example.com
    serverc.lab.example.com
[root@server home]# ansible raleigh --list-hosts
  hosts (2):
    servera.lab.example.com
    serverb.lab.example.com
[root@server home]#

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.229.137 | 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.229.137 | 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.229.137 | 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 >>

版权声明:本文为kouacbb原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/kouacbb/article/details/126735082