shell脚本实现批量查看当前服务器集群的基本信息
1.使用脚本将公钥批量分发至Ansible被管理端服务器
#分发秘钥脚本一:
#!/bin/bash
for ip in `cat /opt/server/ip.txt`
do
sshpass -p'密码' ssh-copy-id -i /root/.ssh/id_dsa.pub $ip -o StrictHostKeyChecking=no 1>/dev/null 2>/var/log/ssh.log
if [ $? -eq 0 ]
then
echo "主机 $ip 分发秘钥成功"
else
echo "主机 $ip 分发秘钥失败"
fi
done
2.ansible主机清单文件添加被控主机
在/etc/ansible/hosts中最后一行添加主机ip
[node]
192.168.xx.xxx
192.168.xx.xxx
3.测试是否控制成功
ansible all --list #查看被控节点的主机
4.在/etc/ansible下编写playbook(以.yml结尾的文件)
vim /etc/ansible/mount.yml
- hosts: node
user: 用户名
tasks:
- name: 复制脚本到被控节点
copy: src=/opt/脚本.sh dest=/root
- name: 执行脚本
shell: bash /root/脚本.sh
5.检查剧本的语法并运行
ansible-playbook mount.yml --check #语法没有问题的话直接运行
ansible-playbook mount.yml