導航:首頁 > 編程語言 > python運維管理工具

python運維管理工具

發布時間:2024-05-21 18:02:09

『壹』 純干貨!python 在運維中的應用 (一):批量 ssh/sftp

日常工作中需要大量、頻繁地使用ssh到伺服器查看、拉取相關的信息或者對伺服器進行變更。目前公司大量使用的shell,但是隨著邏輯的復雜化、腳本管理的精細化,shell已經不滿足日常需求,於是我嘗試整合工作中的需求,製作適合的工具。 由於管理制度的缺陷,我以工作流程為核心思考適合自己的運維方式,提升工作效率,把時間留給更有價值的事情。 完整代碼在最後,請大家參考。

生產:4000+物理伺服器,近 3000 台虛擬機。

開發環境:python3.6、redhat7.9,除了paramiko為第三方模塊需要自己安裝,其他的直接import即可。

批量執行操作是一把雙刃劍。批量執行操作可以提升工作效率,但是隨之而來的風險不可忽略。

風險案例如下:

掛載很多數據盤,通常先格式化硬碟,再掛載數據盤,最後再寫入將開機掛載信息寫入/etc/fstab文件。在批量lsblk檢查硬碟信息的時候發現有的系統盤在/sda有的在/sdm,如果不事先檢查機器相關配置是否一致直接按照工作經驗去執行批量操作,會很容易造成個人難以承受的災難。

在執行批量操作時按照慣例:格式化硬碟->掛載->開機掛載的順序去執行,假設有的機器因為某些故障導致格式化硬碟沒法正確執行。在處理這類問題的時候通常會先提取出失敗的ip,並再按照慣例執行操作。運維人員會很容易忽略開機掛載的信息已經寫過了,導致復寫(這都是血和淚的教訓)。

所以,為了避免故障,提升工作效率,我認為應當建立團隊在工作上的共識,應當遵守以下原則:

當然,代碼的規范也應當重視起來,不僅是為了便於審計,同時也需要便於溯源。我認為應當注意以下幾點:

1、ssh no existing session,sftp超時時間設置:

在代碼無錯的情況下大量ip出現No existing session,排查後定位在代碼的寫法上,下面是一個正確的示例。由於最開始沒考慮到ssh連接的幾種情況導致了重寫好幾遍。另外sftp的實例貌似不能直接設置連接超時時間,所以我採用了先建立ssh連接再打開sftp的方法。

2、sftp中的get()和put()方法僅能傳文件,不支持直接傳目錄:

不能直接傳目錄,那換個思路,遍歷路徑中的目錄和文件,先創建目錄再傳文件就能達到一樣的效果了。在paramiko的sftp中sftp.listdir_attr()方法可以獲取遠程路徑中的文件、目錄信息。那麼我們可以寫一個遞歸來遍歷遠程路徑中的所有文件和目錄(傳入一個列表是為了接收遞歸返回的值)。

python自帶的os模塊中的os.walk()方法可以遍歷到本地路徑中的目錄和文件。

3、多線程多個ip使用sftp.get()方法時無法並發。

改成多進程即可。

4、多個ip需要執行相同命令或不同的命令。

由於是日常使用的場景不會很復雜,所以借鑒了ansible的playbook,讀取提前准備好的配置文件即可,然後再整合到之前定義的ssh函數中。


同時,我們還衍生出一個需求,既然都要讀取配置,那同樣也可以提前把ip地址准備在文件里。正好也能讀取我們返回的執行程序的結果。

參數說明:

密碼認證:

公鑰認證:

可以配合 grep,awk 等命令精準過濾。

個人認為 Python 在初中級運維工作中的性質更像是工具,以提升工作效率、減少管理成本為主。可以從當前繁瑣的工作中解脫出來,去 探索 更有價值的事情。python 本質上並不會減少故障的產生,所以在不同的階段合理利用自身掌握的知識解決當前最重要的痛點,千萬不要本末倒置。

『貳』 如何基於Python構建一個可擴展的運維自動化平台

Django- 一個開放源代碼的 Web 應用框架,由 Python 寫成,採用了 MVC 的軟體設計模式;
rpyc- 一個 Python 實現的 RPC 和分布式計算的工具。支持同步和非同步操作、回調等;
saltstack 、 ansible 、 func - 基本 Python 開發的自動化配置管理與流程式控制制組件;
Mysql- 是一個非常流行的關系型資料庫管理系統。
二、平台架構設計
1、 OMServer 架構圖

大家對這個架構應該不會感到陌生,三層結構也是目前主流的運營平台架構。
2、 架構說明
OMServer 平台為三層架構,分別為 WEB 交互層、分布式計算層、集群管理服務層。
1) 、第一層:即為 WEB 交互層,典型的 B/S 架構,以供管理員操作的交互平台,也是 OMServer 的核心,基於 Django 開發;
2) 、第二層:分布式計算層,提供與主控端的連接通道,採用的是 rpyc 傳輸協議,協議操作流程:前端模塊參數 -> 加密傳輸 -> 任務執行 -> 返回結果集 -> 解密輸出。
3) 、第三層:集群管理服務層,整合 Python 主流的遠程操作組件(支持 Saltstack 、 Anaible、 Func ),對被控端(業務伺服器集群)進行管理,其中主控端可以根據不同 IDC 環境,採用多地多點的管理方式,可提升冗餘度及執行效率。主控端操作模塊以不同 Python 文件加以區分,便於維護,可靈活定製操作邏輯及橫向擴展等特點。

『叄』 為什麼運維用python

基於Python本身的優點:簡單,易學,速度快,免費、開源,高層語言,可移植性,解釋性,可擴展性,可嵌入性,豐富的庫,獨特的語法。Python已經成為現在編程的必備語言。作為「膠水語言」它能夠把其他語言製作的各種模塊輕松聯結在一起。
比起C和Java,Python的魅力更為突顯,因為完成同一項任務,C語言需要1000行代碼,Java只需要100行代碼,而Python可能只需要20行就輕松搞定。
相關推薦:《Python入門教程》
Python在系統運維上的優勢在於其強大的開發多能力和完整的工業鏈,它的開發能力遠強於各種Shell和Perl,的確通過Shell腳本來實現自動化運維!藉助自動化運維來實現大規模集群維護的想法是對的,但由於Shell本身的可編程能力較弱,對很多日常維護中需要的特性支持不夠,也沒有現成的庫可以借鑒,各種功能都需要從頭寫起,所以說Shell腳本力量不夠。
而現Python是更好的選擇,Python除了易讀易寫更兼具面向對象和函數式風格,已經成為IT運維、科學計算、數據處理等領域的主要編譯語言。通過系統化的將各種管理工具結合,對各類工具進行二次開發,形成統一的伺服器管理系統。
和Python類似的Ruby也很適合編寫系統管理軟體,但是在相關庫和工具上比Python差遠了。
讓系統易運維管理是一個工程,Python在伺服器管理工具上非常豐富:配置管理(Saltstack)、批量執行( Fabric, saltstack)、監控(Zenoss, nagios 插件)、虛擬化管理( Python-libvirt)、進程管理 (Supervisor)、雲計算(Openstack)等,大部分系統C庫都有Python綁定。
作為一門編程語言,Python幾乎可以用在任何領域和場合,自身帶有無限可能,擔任任何角色。
從國內的豆瓣、搜狐、金山、騰訊、盛大、網易、網路、阿里、淘寶、熱酷、土豆、新浪、到國外的谷歌、NASA、YouTube、Facebook等互聯網巨頭公司都用Python完成各項任務。
隨著雲計算技術的發展與成熟,低端運維人員的市場越來越小,甚至是沒有市場,因為中小型公司不需要運維,而大公司的門檻高,低端運維沒有核心競爭力,會工程開發能力的運維才是大企業喜聞樂見的。
掌握Linux技能是一個運維人員的基本,要勝任大公司以企業及的運維工作光會Linux還遠遠不夠。Linux+Python是運維的最佳搭配。

『肆』 如何用python做一個設備運維軟體

Python開發的jumpserver跳板機

使用python語言編寫的調度和監控工作流的平台內部用來創建、監控和調整數據管道。任何工作流都可以在這個使用Python來編寫的平台上運行。

企業主要用於解決:通俗點說就是規范運維的操作,加入審批,一步一步操作的概念。

是一種允許工作流開發人員輕松創建、維護和周期性地調度運行工作流(即有向無環圖或成為DAGs)的工具。這些工作流包括了如數據存儲、增長分析、Email發送、A/B測試等等這些跨越多部門的用例。

這個平台擁有和 Hive、Presto、MySQL、HDFS、Postgres和S3交互的能力,並且提供了鉤子使得系統擁有很好地擴展性。除了一個命令行界面,該工具還提供了一個基於Web的用戶界面讓您可以可視化管道的依賴關系、監控進度、觸發任務等。

來個小總結

閱讀全文

與python運維管理工具相關的資料

熱點內容
壓縮干糧圖片 瀏覽:836
怎麼看網站被加密的視頻 瀏覽:846
哪個app可以弄會動的照片模板 瀏覽:272
如何關閉電腦的時鍾源伺服器 瀏覽:902
adb命令設置主屏幕應用 瀏覽:990
編譯後的bak文件 瀏覽:259
php生成文件名 瀏覽:880
日照智能車輛移動機器人導航演算法 瀏覽:115
解壓力的食療 瀏覽:125
密鑰如何加密隨機數 瀏覽:381
統計學中pre的演算法 瀏覽:411
inline函數在編譯時不做類型檢查 瀏覽:268
經緯度查詢android 瀏覽:762
vivoz5x方舟怎麼進伺服器 瀏覽:498
vivox50安卓微信人臉支付怎麼開啟 瀏覽:895
cmd退出python命令 瀏覽:533
恢復u盤加密隱藏的文件 瀏覽:924
對某個人加密應該用公鑰 瀏覽:1000
機頂盒中央1加密 瀏覽:98
單片機的出現有什麼影響 瀏覽:231