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