1、Ansible的安装
epel源
dnf install ansible -y
ansible --viersion
ansible的基本信息:
/etc/ansible/ansible.conf ##全局配置文件,默认很少修改
/etc/ansible/hosts ##全局主机清单清单文件
dnf install sshpass-1.06-9.el8.x86_64.rpm -y
dnf install ansible-2.9.11-1.el8.noarch.rpm -y
2、主控机和被控机之间免密连接
[root@ansible111 ~]# ssh-keygen
[root@ansible111 ~]# dnf install expect -y
[root@ansible111 mnt]# cat sshkey.sh
#!/bin/bash
AUTOSSH()
{
/usr/bin/expect << EOF
spawn ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.25.254.$i
expect {
"yes/no" { send "yes\r";exp_continue }
"password" { send "westos\r" }
}
expect eof
EOF
}
for i in 211 210
do
AUTOSSH
done
[root@ansible111 mnt]# sh sshkey.sh
[root@ansible111 mnt]# ssh -l root 172.25.254.210 ##可以直接免密登陆
3、构建Anisble清单
清单就是ansible控制主机的列表
/etc/ansible/hosts ##全局清单文件
1.直接书写受管主机名或ip,每行一个
node1.westos.com
node2.westos.com
172.25.254.240
2.设定受管主机的组[组名称]
#清单查看:
ansible 清单中组名称 [-i 清单文件] --list-hosts
ansible ungrouped --list-hosts
ansible all --list-hosts
单层清单
[list1]
node1.westos.com
node2.westos.com
[list2]
node2.westos.com
[list3]
172.25.254.240
嵌套清单
[westos:children]
list1
list3
3.主机规格的范围化操作
#通过指定主机名称或IP的范围可以简化Ansible主机清单
#语法:
#[start:end]
[westostest]
172.25.254.[100:108]