1. 通過noVNC實現遠程連接windows桌面
最近項目需要能夠實現遠程桌面,目標桌面是windows系統,發起源是我們後台管理系統的一個子頁面,這就需要通過網頁打開遠程桌面並進行鏈接,所以我們選用了noVNC。網上大部分都是linux系統為伺服器端,現在我就介紹下windows系統為伺服器端的情況。
noVNC簡介:我們集成在管理系統中的vnc訪問客戶端,提供一種在網頁上通過html5的Canvas,通過這個在線網頁發起vnc請求,訪問目標機器上vncserver提供的vnc服務。
參考https://kanaka.github.io/noVNC/
utralVNC簡介:windows的vnc伺服器,在你需要訪問的目標機器上安裝。
參考 http://www.uvnc.com/
websockify簡介:noVNC是通過websockt建立鏈接,而VNC server不支持websocket,所以需要開啟websockify代理來做 WebSockets 和 TCP sockets 之間的轉換。
參考:https://github.com/kanaka/websockify
進入websockify-master\websockify-master\other\js
啟動node伺服器(這邊直接$node websockify.js會報錯,記得安裝相關js模塊 )
輸入:node websockify.js 8000 localhost:5900 轉發8000埠的http鏈接到5900埠(具體看vnc的設置,有些伺服器的埠不一定是5900)即vnc伺服器埠,從而建立鏈接。
下圖是我們用的小米路由器的設置,其他路由器自行搜索方法。
注意:這邊的外部埠(圖中8001)是noVNC頁面外網訪問時候需要填寫的埠,這邊的內部埠(圖中8000)是路由轉發的埠,即這個埠必須和websockify.js監聽的埠一致,參考第二步,websockify.js監聽轉發的埠也是8000。
Extension:
1.多台伺服器可以在路由器轉發的時候設置不同的埠來進行訪問。
2.realVNC tightVNC的伺服器測試均不能通過noVNC訪問,有一些詭異的報錯。
3.現在的鏈接都是非加密的,加密的鏈接還沒嘗試。python伺服器的通信加密在linux機器下測試可行。
2. ubuntu關機後怎麼重啟OpenStack服務,使用Devstack部署的
1、安裝git:
sudo apt-get install git
這個很簡單吧,但就是這個還著實讓我費了一番力氣。因為我擔心ubuntu初始的源不給力,所以剛安裝好便換成了國內的源,偏偏這國內的源無法安裝git,換了好機會仍然是這樣。(網路連接正常,不清楚為什麼會這樣)只能單獨下載包,然後手動安裝了,手動安裝
其實不難(下載到包,之後執行 dpkg -i <包名>),關鍵是得找對版本。
2、獲取devstack腳本:
git clone https://github.com/openstack-dev/devstack.git
3、執行:
cd devstack && ./stack.sh
腳本執行全程只需要按照提示設置幾個密碼,其他無需干預。我沒有讀腳本的源碼,但是根據執行過程的輸出信息大致總結出了他的執行過程:
(1)下載並安裝Openstack運行所需要的系統軟體,大概包括一些python的組件、mysql、rabbitmq-server等
(2)下載openstack組件,包括nova 、keystone、glance、noVNC、horizon等
(3)下載並安裝openstack源碼所依賴的python庫和框架
(4)安裝openstack各組件
(5)啟動各項服務
在較好的網路環境下,有人用不到十分鍾搞定了整個過程,但是我們公司網路環境不是很好,中間還中斷了幾次,大致都與網路有關。遇到較多的問題就是某些軟體無法下載,好在腳本會比較清楚報出錯誤信息,可以將安裝出錯的軟體手動安裝,之後重新執行腳本(最好不要用國內源,用歐美源應該比較靠譜)。過程雖然不是很順利,但是最後還是成功了,看到了dashboard界面。耗時大約3小時。