Ansible 自动化运维
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; then
echo "请先安装 sshpass 工具!"
exit 1
fi
# 固定的 IP 地址列表
ip_list="192.168.60.129 192.168.60.131"
# 检查并生成 SSH 密钥
if [ ! -f ~/.ssh/id_rsa ]; then
echo '----------------'
echo '1. 创建 key'
echo '----------------'
if ! ssh-keygen -f ~/.ssh/id_rsa -t rsa -P ''; then
echo "生成 SSH 密钥失败!"
exit 1
fi
else
echo "SSH 密钥已存在,跳过生成步骤。"
fi
echo '----------------'
echo '2. 分发 key'
echo '----------------'
for ip in $ip_list; do
echo "----------------"
echo "分发 key 到 $ip"
echo "----------------"
if sshpass -p2004129 ssh-copy-id -i ~/.ssh/id_rsa.pub -o StrictHostKeyChecking=no root@$ip; then
echo "分发公钥到 $ip 成功!"
else
echo "分发公钥到 $ip 失败!"
fi
done
运行效果:
2.控制端安装ansible
2.1安装 EPEL 源:sudo dnf install epel-release
sudo dnf install ansible
ansible --version
ok~~~~~~~~~~~~~~~~~~~~~~~~~~~
11.32