fablinker是本人自主開發的乙個多伺服器專案部署和管理的工具。基於python 2.7 ,用到fabric第三方庫,在一台伺服器上可管理控制多個遠端主機,目前v0.01已開發完成。
使用前提是多個伺服器之前可以通過ssh互聯。具體配置請在網上搜尋。
開源**:
2.1 專案部署
比如分布式爬蟲部署在12臺機器上,一旦**更改,那麼所有worker上的**都要更新。
當然你可以寫乙個shell指令碼,用12個scp命令從master上將**拷貝到worker上,但是相對麻煩一點。
用fablinker工具只需乙個put命令搞定。
然後我還需要kill掉所有worker程序,重新啟動程式。沒辦法,這樣你就只有乙個個登入worker伺服器,用kill,sh **.py命令依次執行。
用fablinker工具只需kill 和 sh **.py兩條命令搞定。
如果我還要將各個woker上生成的資料 data.dat收集起來,同樣你可以寫shell指令碼用12個scp命令。
用fablinker工具只需乙個get命令搞定。
2.2 運維
比如公司給咱蜂鳥分配了50臺伺服器,現在需要個每台伺服器安裝些軟體,配置些環境。可以寫個shell指令碼,然後用scp將指令碼分發到各個伺服器上,
依次登入各個伺服器,執行該shell指令碼。
用fablinker可以在所有伺服器上執行命令,當然也支援批處理和root許可權(正在開發中,v0.02完成)。
put : 從本地主機上分發檔案至所有遠端主機
get : 從遠端主機上收集檔案至本地主機
fab shellcmd : 在所有遠端主機上執行shellcmd命令, 比如 ls , php test.php, kill
fab vim test.txt : 依次開啟所有遠端主機上的test.txt檔案,可寫入,更改, 儲存。
!cmd 可以在本地執行命令
4.1 配置檔案
首先你需要建立個你自己的目錄,填寫簡單的配置檔案(預設為fabconf.ini)。
[baseconf]
user = work
password = **
parallel = false
[host_groups]
group0 = [192.168.181.132,192.168.181.133,192.168.181.134]
spider = [192.168.181.132, 192.168.181.137, 192.168.181.134, 192.168.181.139]
上面就是簡單的配置檔案:
baseconf選項是一些基本配置
user是ssh賬號名,
password :登入密碼
parallel :多個遠端主機是否並行執行命令 , 當然在用fab命令的時候可以加引數動態更改並行選項。注意fab vim 命令不能並行執行,將直接導致錯誤!
host_groups配置主機分組,可將用於不同專案的主機分組管理。主機間用逗號分隔。
這裡建立了group0,和spider組,可以用at命令切換到不同組,操作不同的遠端主機。
如果你的當前目錄下存在fabconf.ini檔案直接執行 fablinker命令,當然可以用fablinker -f tmp.ini 來指定不同的配置檔案。
4.2 人性化
採用命令列互動式
所有命令的使用方法都可以通過輸入help命令來檢視
對於不同專案的主機可以通過addgrp增加分組,at命令切換到其他分組或單台主機上。
返回結果有警告和錯誤的會以不同顏色標識:
所有的更改配置的操作,當程式退出時會自動儲存到配置檔案中,比如用addgrp新增分組。
需要在遠端主機後台執行命令只需要加上&, 比如 php hello.php &
如果要在本地伺服器上執行命令:!cmd
>>!date
>>!python hello.py
批量執行命令:將要執行的命令放入乙個檔案中
fab bt cmd.txt
其中cmd.txt檔案中一行乙個命令
4.3 如何使用
在work賬戶下只需要輸入fablinker命令即可:
1)新建乙個你自己的目錄,建立配置檔案,可將/home/work/fabconf.ini檔案拷貝到你的目錄,然後修改裡面的遠端主機組(參考4.1)
2)如果你的配置檔名就是fabconf.ini,可直接輸入fablinker命令執行;如果是其他名字,比如conf.txt, 那麼輸入fablinker -f conf.txt
3)使用help可檢視所有命令,help cmd,可檢視cmd命令使用方法
4)fab date 執行試試,會有驚喜!
開源伺服器管理工具 3個開源時間管理工具
開源伺服器管理工具 對於許多人來說,他們引用使用基於linux的作業系統的原因之一就是生產力。如果您是只根據自己的喜好對系統進行了調整的超級使用者,尤其是如果您熟練使用命令列,則很有可能已經實現了生產率的顯著提高。但是,您是否必須成為極端使用者才能利用開放源 軟體的能力來提高生產率?絕對不!除了生產...
vault 伺服器密碼 證書管理工具
vault是乙個密碼 證書集中式管理工具,通過http api對外提供統一的密碼訪問入口,並且提供許可權控制以及詳細的日誌審計功能。乙個系統可能需要訪問多個帶密碼的後端 例如資料庫 通過api keys對外部系統進行呼叫,面向服務的架構通訊等等。要將眾多系統中的使用者和許可權對應起來已經非常困難,加...
伺服器管理 SSH遠端會話管理工具screen
有小夥伴反應,在伺服器上跑程式,不知何原因,突然連線終端,為了解決這個問題,在這裡介紹乙個ssh遠端會話管理工具screen。screen是乙個可以在多個程序之間多路復用乙個物理終端的全屏視窗管理器。screen中有會話的概念,使用者可以在乙個screen會話中建立多個screen視窗,在每個scr...