Ansible批量部署采集器

2023-04-22 16:58:33 浏览数 (2)

千台服务器部署采集器的时候用到了 Ansible,简单记录一下。

安装 Ansible

代码语言:javascript复制
pip install ansible
yum install ansible –y

在 /etc/ansible/hosts 中添加被管理组 ,比如图中[web] 是组的名字。


执行ansible命令测试,通过hosts中定义的web组执行 ‘hostname’ 命令,-k是输入密码,-u是用户名。

ansible web -m command -a ‘hostname’ -k -u lixi

提示要把fingerprint加入到管理机器的 known_hosts中。

可以通过ssh连一下被管理的机器,生成fingerprint,或者让管理机批量连接一下。

批量创建连接的shell脚本。

代码语言:javascript复制
#!/bin/ssh

rm -rf ~/.ssh/id_rsa*
ssh-keygen -f ~/.ssh/id_rsa -P "" > /dev/null 2>&1
SSH_Pass=密码
SSH_User=用户
Key_Path=~/.ssh/id_rsa.pub
for ip in `cat /root/ansible/ip.txt`
do
        sshpass -p $SSH_Pass ssh-copy-id -i $Key_Path "-o strictHostKeyChecking=no"  $SSH_User@$ip
done

执行完成后测试,批量执行命令

代码语言:javascript复制
ansible web -m command -a 'free -m' -u lixi

Ansible给所有web组成员创建目录

代码语言:javascript复制
 ansible web -m command -a 'mkdir /home/lixi/kuaishou' -u lixi

Ansible传输文件给所有web组成员

代码语言:javascript复制
ansible web -m copy -a "src=/root/ansible/build.sh dest=/home/lixi/build.sh" -u lixi

Ansible执行脚本,所有web组执行build.sh脚本

代码语言:javascript复制
ansible web  -m shell -a "build.sh" -u lixi

0 人点赞