自動化運維平臺(日誌實時刷新到web界面)

針對前面兩篇博客的續寫,主體的都寫的差很少了,可是實際真正的功能並無寫。功能按鈕以下:分支顯示,打包,重啓。
html

實時刷新到web的總體思路:vue

當點擊分支顯示時,作的操做是,把服務名發送到後端,而後調用shell執行git相關命令的操做,將全部分支實時顯示到web界面上,而後經過點擊觸發事件將分支名加到vuex中對應的服務名後面的branch字段中,此時public公共組件裏面的watch會實時監聽vuex中的值將分支名稱顯示到以下,當點擊打包按鈕時,會將這個分支名和服務名一併發送到後端,執行相關的shell腳本,執行完相關的shell腳本後將jar包發送到指定的位置,固然在執行這個shell過程當中會實時的將打包日子顯示到web界面上,對於重啓按鈕顯示日誌也是同樣的,可是這裏想用其餘方法實現。接下來會講到。python





image.png

用到的技術:git

初版:websocket+paramikoweb

參考博客:https://www.cnblogs.com/xiao987334176/p/10289262.htmlvuex

思路:經過paramiko模塊實現python和shell的交互,並將執行的結果保存到標準輸出中,而後經過和websocket循環的方式顯示到web界面中。shell


第二版:websocket+websocketd編程


websocketd的官網:http://websocketd.com/後端


webcocketd的簡單使用:瀏覽器

        websocketd容許用幾乎任何編程語言編寫WebSocket端點。

        端點的鏈接與關係:

        每當瀏覽器鏈接到該URL時,websocketd服務器將啓動進程的新實例。當瀏覽器斷開鏈接時,進程將中止。

        若是有10個瀏覽器鏈接到您的服務器,那麼將有10個獨立的程序實例運行。websocketd負責監聽WebSocket鏈接並啓動/中止程序進程。


是HTML5開始提供的一種瀏覽器與服務器進行全雙工通信的網絡技術,屬於應用層協議。它基於TCP傳輸協議,並複用HTTP的握手通道。有瀏覽器發起創建鏈接以後,服務端也能夠主動向瀏覽器發送數據。

這是我本身測試的結果:

image.png

官網還有websocket+websocketd的測試,到時候將websocket的代碼部分寫入到vue中的script中就能夠了。


websocketd官網上有測試,拷貝下來也能夠本身測試,徹底沒有問題的。這裏沒有繼續在代碼裏面實現的緣由是被打擊的太嚴重了,作完以後發現和jenkins持續構架並無什麼區別,jenkins的流程也是在本地打包,打好包以後使用ssh方式將jenkins服務器上的包發送到遠程主機並執行重啓相關的腳本。

相關文章
相關標籤/搜索