ansible的硬件巡檢腳本
使用場(chǎng)景: 公司內(nèi)部服務(wù)器用的是云廠商的, 一般在交付使用前會(huì)給一個(gè)配置清單 但是真正的配置還需要運(yùn)維部門(mén)的人員去檢查一下 每批交付使用的主機(jī)少則十幾臺(tái) 多則幾十臺(tái) 將配置的結(jié)果做成表格導(dǎo)進(jìn)execl
我相信沒(méi)有人會(huì)一臺(tái)一臺(tái)統(tǒng)計(jì) ansible在這個(gè)時(shí)候就派上了用場(chǎng)
優(yōu)點(diǎn)是像自助餐一樣 需要獲取什么值 直接用shell模塊就好了 有時(shí)候并不需要去寫(xiě)很多playbook
前提 :
服務(wù)器上已經(jīng)安裝ansible 并且主機(jī)之間已經(jīng)取得互信
互信腳本
本質(zhì)是將自己本機(jī)的公鑰使用非交互模式推送到遠(yuǎn)端主機(jī)
在這里對(duì) ssh-copy-id這個(gè)命令做個(gè)解釋
ssh-copy-id [ -i 選項(xiàng)是指定本地公鑰的文件位置 -o StrictHostKeyChecking=no 是不進(jìn)行公鑰確認(rèn)]
在ssh_config文件中 公鑰確認(rèn)這一步是默認(rèn)開(kāi)啟的 使用-o選項(xiàng)相當(dāng)于把配置文件中的優(yōu)先級(jí)臨時(shí)提高了
for i in {1..100}
do
sshpass -p ' 123456' ssh-copy-id -o StrictHostKeyChecking=no root@172.16.255.$i
done
或者
sshpass -p123456 ssh-copy-id -i /root/.ssh/id_dsa.pub -o StrictHostKeyChecking=no 172.16.1.$i &>/dev/null
執(zhí)行完畢之后自己登陸驗(yàn)證一下
在自己登陸的機(jī)器上使用ansible
all 選項(xiàng): 指定所有主機(jī) 也可以使用-i 選項(xiàng)指定主機(jī)組
-m 選項(xiàng) : module模塊的意思 在ansible中諸多模塊可以使用 在這我們使用shell模塊 ad-hoc的模式 短小精悍
-a 指定動(dòng)作
ansible all -m shell -a "disk=$(expr `df |awk '{print $2}'|sort -nr|head -1` / 1048576) && cpu=$(cat /proc/cpuinfo| grep 'cpu cores'| wc -l),&& men=$(free -h|grep 'Mem'|awk '{print $2}') && echo -e '$disk \t , $cpu \t , $men'" > test.csv
在這個(gè)腳本里查看了磁盤(pán)容量 按G顯示 查看了cpu的邏輯核心數(shù) 內(nèi)存的總量 當(dāng)有其他需求可以加在命令中以xxx=$()的形式 最后根據(jù)順序echo出來(lái)這些變量的名字
可以將這些巡檢的結(jié)追加到文本文檔里 每個(gè)結(jié)果中間加上 , 符號(hào) 生成csv文件 拖到本地直接使用

浙公網(wǎng)安備 33010602011771號(hào)