centos7上安裝,配置ansible的坑

一、首先要準備好repo源
1.從阿里雲下載Centos的倉庫源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
2.從阿里雲下載第三方epel源 (這裏直接下載,未使用rpm -Uvh方式安裝epel源)
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

二、安裝expect命令
後期要通過expect進行自動交互式批量下發到被監管機上,由於centos7最小化安裝沒有自帶expect命令,用下面命令安裝:
yum -y install expect

三、往遠程機linux批量分發公鑰
看了很多資料,往遠程機批量分發都是需要輸入ssh協議的密碼;自動化運維,還需要手動輸入,尼瑪坑爹啊,要是管理上萬臺機器,還不得輸到手抽筋啊(要是數自己的錢數到手抽筋還差不多);廢話少說,給大家一個自動分發公鑰的腳本:

#!/bin/bash
#注:此腳本可能只適用於centos系統,其他可能不適用,因爲scp的提示信息可能不一樣
export password=123
rm -rf root/.ssh/known_hosts

function pub_key () {
#創建.ssh目錄,有些系統可能沒有.ssh目錄
/usr/bin/expect -c "
        spawn ssh root@$1
        expect \"(yes/no)?\" {send \"yes\n\"}
                expect \"*assword:\" {send \"$2\n\"}
                expect \"#\" {send \"mkdir /root/.ssh\n\"}
                expect \"#\" {send \"exit\n\"}
        expect eof
        "
#遠程拷貝公鑰文件
/usr/bin/expect -c "
        spawn scp /root/.ssh/id_rsa.pub root@$1:/root/.ssh/
        expect \"(yes/no)?\" {send \"yes\n\"}
        expect \"*assword:\" {send \"$2\n\"}
        expect eof
        "
#遠程機公鑰文件重新改變權限
/usr/bin/expect -c "
        spawn ssh root@$1
        expect \"(yes/no)?\" {send \"yes\n\"}
        expect \"*assword:\" {send \"$2\n\"}
        expect \"#\" {send \"chmod 0400 /root/.ssh/id_rsa.pub\n\"}
        expect \"#\" {send \"exit\n\"}
        expect eof
        "
}

j=1
for i in $(cat iplist.txt);do
    echo 第 $j 臺 ip 是 $i 正在分發公鑰,請稍後...
        pub_key $i $password &> /dev/null
        echo $i 已完成分發公鑰 
        let j++
done

1.iplist.txt文件是和此腳本同目錄下的IP列表文件,每行都是一個IP地址
2.這裏假設機器密碼都是123,其實生產環境的密碼都是統一的;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章