sshpass做秘钥分发,ansible做自动化运维工具
最近公司機(jī)器的增多,順便還要上報(bào)表系統(tǒng),考慮到服務(wù)器越來越多,手工的管理顯得越來的越吃力,所以打算推進(jìn)公司自動(dòng)化運(yùn)維工具的使用。
?
推進(jìn)的過程中,一步一個(gè)坑踩過來的。由于公司之前未運(yùn)用過自動(dòng)化運(yùn)維工具,所以經(jīng)驗(yàn)很少。
首先安裝ansible:
第一步:設(shè)置epel倉(cāng)庫(kù):
rpm -iUvh http://dl.Fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm第二步,使用yum安裝ansible,順便檢查下ansible版本:
yum -y install ansibleansible -- version
? 第三步,準(zhǔn)備秘鑰的分發(fā):
ssh-keygen #獲取所登錄用戶的秘鑰 ssh-copy-id -i .ssh/id_rsa.pub root@10.251.26.81 #分發(fā)哪個(gè)用戶的秘鑰就用哪個(gè)用戶?
?
但是由于我們主機(jī)數(shù)量的居多,一臺(tái)臺(tái)的去分發(fā)秘鑰太過繁瑣和勞累,所以在百度了一些東西之后我決定利用sshpass來做秘鑰分發(fā):
sshpass做秘鑰分發(fā):
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 #版本不同的情況下,有時(shí)候這塊"-o StrictHostKeyChecking=no shadm1@${i}" ?不用加雙引號(hào) 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?
利用一個(gè)簡(jiǎn)單的腳本來做秘鑰分發(fā)
?
?
完成后,測(cè)試執(zhí)行ansible:
ansible test -m command -a 'hostname' -u shadm1 -U useradmin --ask-sudo-pass
可以正常執(zhí)行,成功!
?
QQ:531197592,有問題請(qǐng)指正
?
轉(zhuǎn)載于:https://www.cnblogs.com/sexiaoshuai/p/7366266.html
總結(jié)
以上是生活随笔為你收集整理的sshpass做秘钥分发,ansible做自动化运维工具的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux Shell 从入门到删除根目
- 下一篇: CentOS7下安装GUI图形界面