許昌學(xué)院信息化管理中心 孫培巖
憑借著簡潔與高效的代碼語言以及豐富的第三方庫,Python成為網(wǎng)絡(luò)自動化運維中較為常見的語言,其能夠簡化網(wǎng)絡(luò)自動化運維流程,提升其運維質(zhì)量與水平。操作系統(tǒng)整體技術(shù)水平的高低,體現(xiàn)在Python技術(shù)下網(wǎng)絡(luò)自動化運維方面。因此,應(yīng)當(dāng)通過加強Python的技術(shù)研發(fā)水平、推進Python網(wǎng)絡(luò)自動化運維技術(shù)創(chuàng)新,來推進我國網(wǎng)絡(luò)自動化運維水平。
在傳統(tǒng)網(wǎng)絡(luò)運維背景下,實行以人為主要媒介的工作形式,其往往需要網(wǎng)絡(luò)運維員進行大量重復(fù)的網(wǎng)絡(luò)運維工作,以手工形式管理硬件、軟件資源,如人工執(zhí)行配置命令、現(xiàn)場解決網(wǎng)絡(luò)設(shè)備故障等,這種舊的網(wǎng)絡(luò)管理操作流程較長,消耗成本較高,且容易出現(xiàn)各種人為失誤。隨著網(wǎng)絡(luò)協(xié)議相關(guān)技術(shù)的不斷更新,面對成千上萬的設(shè)備升級、配置變更等問題,其亟待新的技術(shù)來適應(yīng)新時代下的網(wǎng)絡(luò)運維工作。Python擁有優(yōu)雅的語法、與網(wǎng)絡(luò)自動化運維相匹配的模塊、開源運維工具(如Celery、ansible等),其能夠解決網(wǎng)絡(luò)自動化運維中出現(xiàn)的各種問題,促使網(wǎng)絡(luò)自動化運維朝著輕量、高效、便捷發(fā)展。
在DevOps逐漸成為互聯(lián)網(wǎng)行業(yè)流行體系的背景下,行業(yè)發(fā)展與業(yè)務(wù)流程對網(wǎng)絡(luò)運維提出了更高要求。面對中小型企業(yè)大量的網(wǎng)絡(luò)設(shè)備,如果仍沿用傳統(tǒng)一對多的方式進行網(wǎng)絡(luò)設(shè)備維護,已經(jīng)不再是正確、高效的方式,不但容易因為人為失誤造成各種網(wǎng)絡(luò)管理錯誤,而且會浪費大量管理與人力成本。因此,從DevOps理念中汲取靈感,利用自動化工具與程序化腳本對網(wǎng)絡(luò)設(shè)備實現(xiàn)批量管理,支持無數(shù)小型服務(wù)的應(yīng)用環(huán)境,無疑是一個較好的解決之策。自動化工具是DevOps理念落地的前提,就可用操作、模塊和界面而言,Python在網(wǎng)絡(luò)自動化運維有著較好的優(yōu)勢,提供了諸如Paramiko、Netmiko、TextFSM等模塊庫,在代碼語言上較為簡潔與高效,擁有通信內(nèi)容很難被解密、支持各種不同的設(shè)備廠商、設(shè)備自動發(fā)現(xiàn)、豐富的第三方庫等優(yōu)勢,如使用Netaddr處理IP地址和網(wǎng)絡(luò)、利用Jinja2模板加載配置、調(diào)用其他語言所寫的代碼等,能夠簡化任何規(guī)模的基礎(chǔ)網(wǎng)絡(luò)設(shè)備設(shè)施,在網(wǎng)絡(luò)設(shè)備與自動化工具平臺之間搭建一個低層次的網(wǎng)絡(luò)接口,實現(xiàn)網(wǎng)絡(luò)運維的自動化與高效化。
對于大型網(wǎng)絡(luò)維護環(huán)境而言,運用Python語言編寫自動化命令腳本,能夠?qū)崿F(xiàn)對遠程網(wǎng)絡(luò)設(shè)備的批量管理,提升網(wǎng)絡(luò)管理的效率;此外,Python語言也可以與其他信息相結(jié)合,對網(wǎng)絡(luò)環(huán)境的數(shù)據(jù)信息管理、系統(tǒng)防護系統(tǒng)進行升級,提升網(wǎng)絡(luò)運維的標(biāo)準化程度。具體而言,一方面實現(xiàn)對網(wǎng)絡(luò)環(huán)境的系統(tǒng)保護。在當(dāng)前視數(shù)據(jù)信息為財富的背景下,學(xué)校、企事業(yè)單位等都需要借助網(wǎng)絡(luò)進行數(shù)據(jù)信息傳輸,這就為數(shù)據(jù)信息泄露提供了機會,容易產(chǎn)生諸多信息安全問題。憑借著強大的第三方編程模塊支撐,Python既可以運用自身的程序語言編寫各種計算機安全軟件,如Capy、Pcapy、Sulley等計算機系統(tǒng)保護軟件,為網(wǎng)絡(luò)運行保駕護航;同時也能夠與其他軟件協(xié)作,提升網(wǎng)絡(luò)環(huán)境的安全性。另一方面,實現(xiàn)對網(wǎng)絡(luò)的自主監(jiān)控與批量操作。面對諸如網(wǎng)絡(luò)環(huán)境配置、網(wǎng)絡(luò)設(shè)備監(jiān)控等大批量網(wǎng)絡(luò)運維工作時,可以通過編寫Python腳本并使其自動運行,將多臺服務(wù)器互相連接起來,將固定運維工作方式以Python進行封裝,進而來代替人工操作,實現(xiàn)互聯(lián)網(wǎng)命令的自動檢查與維護,實現(xiàn)主備系統(tǒng)一鍵切換。
Paramiko是一種開源Python模塊,其具有高度的跨平臺性,能夠適用Linux、 MacOS X、Windows等操作平臺,其通過運用SSH2提供的安全連接,能夠以加密和認證的方式實現(xiàn)對遠程服務(wù)器的批量化管控與自動化運維,如對fabric內(nèi)部的遠程管理。依據(jù)類的屬性以及核心組件的性質(zhì),Paramiko模塊可分為類似 Socke功能的Channel類和以加密會話為主要功能的Transport類,實現(xiàn)上傳下載服務(wù)的SFTPClient類,以及實現(xiàn)對遠程服務(wù)器運維和管理的SSHClient類。通常用于執(zhí)行遠程命令,比如對遠程連接、認證等,二者與Linux的Sftp命令、SSH命令分別對應(yīng)。
基于Python的網(wǎng)絡(luò)自動化運維,可從運維程序的自動化、運維執(zhí)行過程的自動化兩個維度進度考量,主要對應(yīng)Python的網(wǎng)絡(luò)自動化運維的腳本設(shè)計。從運維程序自動化設(shè)計而言,首先應(yīng)當(dāng)對網(wǎng)絡(luò)設(shè)備進行SSH部署,輸入:
首先,面向操作系統(tǒng)較為單一??v觀當(dāng)前基于Python的網(wǎng)絡(luò)自動化運維發(fā)展情況,多在Linux操作系統(tǒng)上體現(xiàn),而在Windows、Mac OS操作系統(tǒng)上應(yīng)用與普及程度較少,造成Python技術(shù)在操作系統(tǒng)分布上存在一定的失衡。另一方面,Python網(wǎng)絡(luò)自動化運維水平亟待提升。在當(dāng)前數(shù)字化、智慧化發(fā)展的社會背景下,網(wǎng)絡(luò)自動化運維出現(xiàn)了新的發(fā)展方向,而智能化、智慧化正是其發(fā)展的主要方向之一。比如說,可以將深度學(xué)習(xí)模型、智能算法與Python網(wǎng)絡(luò)自動化運維相結(jié)合,利用機器學(xué)習(xí)、智慧技術(shù)等實現(xiàn)網(wǎng)絡(luò)智能化運維,推進網(wǎng)絡(luò)運維邁入高質(zhì)量發(fā)展階段。然而,當(dāng)前Python下的網(wǎng)絡(luò)自動化運維發(fā)展尚處于初級階段。如通過編輯腳本來進行某種操作、通過編寫Python語言來實現(xiàn)計算機網(wǎng)絡(luò)自檢自查等,但是關(guān)于如何修復(fù)網(wǎng)絡(luò)運維中出現(xiàn)的新問題,又該如何使計算機像人一樣進行思考以開展不同的運維任務(wù),尚處于探索階段。
針對Python技術(shù)下的網(wǎng)絡(luò)自動化運維問題,應(yīng)當(dāng)加強Python網(wǎng)絡(luò)自動化運維的理論與實踐創(chuàng)新,采用問題導(dǎo)向原則,研究與探索對應(yīng)的解決之道,結(jié)合業(yè)務(wù)實際開展技術(shù)革新,以推進Python技術(shù)下網(wǎng)絡(luò)自動化運維水平的提升。一方面,應(yīng)當(dāng)加強Python的技術(shù)研發(fā)力度。對于Python網(wǎng)絡(luò)自動化運維在Windows、MAC OS等操作系統(tǒng)應(yīng)用較少的情況,可以以不同操作系統(tǒng)網(wǎng)絡(luò)自動化運維為專項技術(shù)提升活動,針對不同操作系統(tǒng)網(wǎng)絡(luò)運維需求與自身系統(tǒng)特點,來拓展Python語言在不同操作系統(tǒng)中網(wǎng)絡(luò)自動化運維的應(yīng)用場景。另一方面,推進Python網(wǎng)絡(luò)自動化運維技術(shù)創(chuàng)新。因此,在網(wǎng)絡(luò)自動化運維中,面對網(wǎng)絡(luò)自動化運維師對未來網(wǎng)絡(luò)運維場景的應(yīng)用需求,如計算機自己編寫腳本以應(yīng)對始料未及的網(wǎng)絡(luò)運維問題,賦予計算機人一樣的思考方式,使其能夠隨著計算機網(wǎng)絡(luò)運行狀況而作出順應(yīng)性響應(yīng);要以Python語言為技術(shù)基礎(chǔ),以網(wǎng)絡(luò)運維實際需求為依托,推進Python與深度學(xué)習(xí)、圖像識別等領(lǐng)域先進技術(shù)的融合,打造服務(wù)于網(wǎng)絡(luò)運維的Python網(wǎng)絡(luò)自動化運維技術(shù),擺脫技術(shù)對網(wǎng)絡(luò)自動化運維的限制,推進網(wǎng)絡(luò)自動化運維技術(shù)的提高。