1、Inventory是什么
Inventory 文件主要用来填写被管理主机以及主机组信息;(逻辑上定义);
默认 Inventory 文件为 /etc/ansible/hosts ;
当然也可以自定义一个文件,当执行 ansible 命令时使用 -i 选项指定 Inventory文件位置;
2、Inventory-连接方式
2.1、Inventory-密码连接方式
2.1.1、指定主机IP、端口,指定主机用户名、密码
~]# vi /etc/ansible/ansible.cfg
...
host_key_checking = False
...
~]# vi /etc/ansible/hosts
# 详细清单文件
[webservers]
192.168.10.4 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass='root1234'
192.168.10.8 ansible_ssh_port=22 ansible_ssh_user=root ansible_ssh_pass='root1234'
# 通过域名的简写方式
[webservers]
web[1:2].example.com ansible_ssh_pass='root1234'
2.1.2、Inventory-通过变量方式定义密码
~]# vi /etc/ansible/hosts
[webservers]
192.168.10.4
192.168.10.8
[webservers:vars]
ansible_ssh_port=22
ansible_ssh_user=root
ansible_ssh_pass=root1234
2.2、Inventory-免密码连接方式
2.2.1、ssh设置免密登陆
2.2.2、无人值守自行推送公钥
ssh-keygen -t rsa -C test@qq.com -f ~/.ssh/id_rsa -P ""
yum install sshpass -y
sshpass -proot1234 ssh-copy-id -i ~/.ssh/id_rsa.pub -o StrictHostKeyChecking=no root@192.168.10.4
sshpass -proot1234 ssh-copy-id -i ~/.ssh/id_rsa.pub -o StrictHostKeyChecking=no root@192.168.10.8
2.2.3、配置 inventory 主机清单
~]# vi /etc/ansible/hosts
[webservers]
192.168.10.4
192.168.10.8
3、使用普通用户管理被控端【sudo】
3.1、场景说明
ansible 使用 cyc 普通用户统一管理所有的被控端节点;
3.2、首先控制端、被控端,都需要有 cyc 用户
useradd cyc
echo "123456" | passwd --stdin cyc
3.3、将控制端 cyc 用户的公钥推送到被控端 cyc 用户下,使普通用户能进行免密码登录
su - cyc -c "ssh-keygen -t rsa -C cyc@qq.com -f /home/cyc/.ssh/id_rsa -P ''"
su - cyc -c "sshpass -p123456 ssh-copy-id -i ~/.ssh/id_rsa.pub -o StrictHostKeyChecking=no cyc@192.168.10.4"
su - cyc -c "sshpass -p123456 ssh-copy-id -i ~/.ssh/id_rsa.pub -o StrictHostKeyChecking=no cyc@192.168.10.8"
3.4、所有主机的 cyc 用户都必须添加 sudo 权限
]# visudo
cyc ALL=(ALL) NOPASSWD: ALL
3.5、修改控制端 /etc/ansible/ansible.cfg 主配置文件,配置普通用户提权
~]# vi /etc/ansible/ansible.cfg
[privilege_escalation]
become=True
become_method=sudo
become_user=root
become_ask_pass=False
3.6、测试
3.6.1、使用cyc用户访问root家目录
~]# su - cyc -c "ansible webservers -m shell -a 'ls -l /root'"
192.168.10.8 | CHANGED | rc=0 >>
total 0
-rw-r--r-- 1 root root 0 May 11 19:39 test
192.168.10.4 | CHANGED | rc=0 >>
total 0
-rw-r--r-- 1 root root 0 May 11 19:39 test