Ansible-Inventory【主机清单配置】
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