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

針對前面兩篇博客的續寫,主體的都寫的差不多了,但是實際真正的功能並沒有寫。功能按鈕如下:分支顯示,打包,重啓。

實時刷新到web的整體思路:

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





image.png

用到的技術:

第一版:websocket+paramiko

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

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


第二版: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服務器上的包發送到遠程主機並執行重啓相關的腳本。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章