sshpass做秘钥分发,ansible做自动化运维工具

最近公司机器的增多,顺便还要上报表系统,考虑到服务器越来越多,手工的管理显得越来的越吃力,所以打算推进公司自动化运维工具的使用。

 

推进的过程中,一步一个坑踩过来的。由于公司之前未运用过自动化运维工具,所以经验很少。

首先安装ansible:

  第一步:设置epel仓库:

rpm -iUvh http://dl.Fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm

  第二步,使用yum安装ansible,顺便检查下ansible版本:

yum -y install ansible
ansible -- version

   第三步,准备秘钥的分发:

ssh-keygen    #获取所登录用户的秘钥
ssh-copy-id -i .ssh/id_rsa.pub root@10.251.26.81    #分发哪个用户的秘钥就用哪个用户

 

 

但是由于我们主机数量的居多,一台台的去分发秘钥太过繁琐和劳累,所以在百度了一些东西之后我决定利用sshpass来做秘钥分发:

sshpass做秘钥分发:

 1 #/bin/bash
 2 password=1qaz@WSX
 3 IP_ADDR='10.251.26.81'
 4 
 5 
 6 #. /etc/init.d/functions
 7 #if ! [ -f ~/.ssh/id_dsa.pub ];then
 8 #    ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa >/dev/null 2>&1
 9 #    echo -e "\033[32m======Local=========\033[0m"
10 #    action "Generate the key!"  /bin/true
11 #fi
12 
13    for i in $IP_ADDR;do
14 #     sshpass -p $passwd ssh-copy-id -i /home/shadm1/.ssh/id_dsa.pub "-o StrictHostKeyChecking=no ${i}"  >/dev/null 2>&1
15       sshpass -p "1qaz@WSX" ssh-copy-id -i .ssh/id_rsa.pub "-o StrictHostKeyChecking=no shadm1@${i}" >/dev/null @>&1     #版本不同的情况下,有时候这块"-o StrictHostKeyChecking=no shadm1@${i}"  不用加双引号
16       if [ $? == 0 ];then
17           echo -e "\033[32m=========`ssh $i hostname`==========\033[0m"
18           action  "send successful" /bin/true
19       else
20           echo -e "\033[31m======$i=======\033[0m"
21           action  "send failed" /bin/false
22       fi
23    done
24          

 

利用一个简单的脚本来做秘钥分发

 

 

完成后,测试执行ansible:

ansible test -m command -a 'hostname' -u shadm1 -U useradmin --ask-sudo-pass

可以正常执行,成功!

 

QQ:531197592,有问题请指正

 

posted @ 2017-08-15 17:25  sexiaoshuai  阅读(557)  评论(0编辑  收藏  举报