python遠程批量執(zhí)行
我并不是一個專業(yè)的開發(fā),我一直在學(xué)習(xí)linux運維,對于python也是接觸不久,所以代碼寫的并不是很規(guī)范簡潔。
前段時間一個同學(xué)找我一起做一個自動化運維平臺,我對python的django還沒有了解,并且對于HTML和JS這類開發(fā)學(xué)習(xí)還沒有涉及,所以我說我做些后臺的實現(xiàn),前端就交給我的同學(xué)做。不扯淡了,下面說下我做批量執(zhí)行的思路。
用到的模塊:paramiko
功能:很簡單就是批量執(zhí)行命令,類似于ansible,本來想用Fabric,但是想一想還是用paramiko,因為我在學(xué)習(xí)ansible,ansible里面就有paramiko。后期還要將配置文件里面的主機組放到數(shù)據(jù)庫里面。這里我想使用的mongodb,因為我的主機配置文件寫的是字典的形式,保存在文檔數(shù)據(jù)庫中更為方便些。
配置文件格式:這里為了方便獲取信息,直接寫成了字典的形式,本來前期想用pickle模塊進行序列化輸入到文件中,但是后來發(fā)現(xiàn)如果主機要是多的話,手動輸入還是太麻煩了。
類:為了后期更好的添加功能,我直接將paramiko的SSHClient寫成了類。后面要添加上傳文本,下載等功能,這就用到了SFTP的功能。
函數(shù):這里面的函數(shù)就是對文件進行條件輸出,找到符合的主機組名稱。
講解下paramiko:paramiko模塊在我理解就是依賴ssh遠程的一個模塊。
(1)、paramiko安裝方式:使用pip安裝即可。