考古学家lx(李玺)

考古学家lx(李玺)

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

安装 Ansible

pip install ansible
yum install ansible –y

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

Ansible批量部署采集器-LMLPHP


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

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

Ansible批量部署采集器-LMLPHP
提示要把fingerprint加入到管理机器的 known_hosts中。

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

批量创建连接的shell脚本。

#!/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

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

ansible web -m command -a 'free -m' -u lixi

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

 ansible web -m command -a 'mkdir /home/lixi/kuaishou' -u lixi

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

ansible web -m copy -a "src=/root/ansible/build.sh dest=/home/lixi/build.sh" -u lixi

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

ansible web  -m shell -a "build.sh" -u lixi
04-13 19:48