Ansible架构:
一.部署主机清单 前期环境准备:
管理端:
192.168.60.128
被管理端:
client1:192.168.60.129
client2:192.168.60.131
1.所有被管理端配置ssh密钥 (1.免密登陆 2.允许root远程登陆) 脚本如下:
#!/bin/bash# 检查 sshpass 是否已安装
if ! command -v sshpass &> /dev/null; thenecho "请先安装 sshpass 工具!"exit 1
fi# 固定的 IP 地址列表
ip_list="192.168.60.129 192.168.60.131"# 检查并生成 SSH 密钥
if [ ! -f ~/.ssh/id_rsa ]; thenecho '----------------'echo '1. 创建 key'echo '----------------'if ! ssh-keygen -f ~/.ssh/id_rsa -t rsa -P ''; thenecho "生成 SSH 密钥失败!"exit 1fi
elseecho "SSH 密钥已存在,跳过生成步骤。"
fiecho '----------------'
echo '2. 分发 key'
echo '----------------'for ip in $ip_list; doecho "----------------"echo "分发 key 到 $ip"echo "----------------"if sshpass -p2004129 ssh-copy-id -i ~/.ssh/id_rsa.pub -o StrictHostKeyChecking=no root@$ip; thenecho "分发公钥到 $ip 成功!"elseecho "分发公钥到 $ip 失败!"fi
done
运行效果:
2.控制端安装ansible
2.1安装 EPEL 源:sudo dnf install epel-release
sudo dnf install ansible
ansible --version
ok~~~~~~~~~~~~~~~~~~~~~~~~~~~
11.32