【摘要】 本次實踐讓我體驗到了全程在雲上建立彈性雲伺服器ECS,配置雲伺服器環境,在DevCloud平台上一站式進行項目管理、代碼托管、代碼檢查、流水線、編譯、建構、部署、測試、釋出的流程。基本做到了面向開發者提供雲服務,即開即用,随時随地
本文基于DevCloud進行黑白棋實時對戰遊戲開發,沙箱實驗連結:https://lab.huaweicloud.com/testdetail_411?ticket=ST-268164-dDRCJMPvZkgrnaXgZyUvLCn7-sso
本次實驗實踐的目标與基本要求:
- 學會使用軟體開發服務DevCloud實作代碼倉庫管理
- 學會使用軟體開發服務DevCloud實作編譯、建構、部署
本文會分為:
1.建立彈性雲伺服器ECS
2.雲伺服器環境配置
3.建立項目及建構部署
1.建立彈性雲伺服器ECS
在沙箱實驗桌面,點選chrome浏覽器,首次會自動登入并進入華為雲控制台頁面。
1.1 建立安全組、VPC
在華為雲控制台頁面左側,點選“服務清單”->“網絡”->“虛拟私有雲VPC”進入網絡控制台:
在網絡控制台左側菜單欄中點選“通路控制”->“安全組”->“建立安全組”,填寫安全組名稱與模闆資訊:
建立完成如下圖展示:
點選建立的自定義安全組名稱,進入該安全組的設定頁面,點選“入方向規則”,點選下面的“添加規則”,添加一條規則:
設定安全組規則完成,傳回安全組清單,在網絡控制台左側菜單欄中點選“虛拟私有雲”-“我的VPC”,點選“建立虛拟私有雲”進入建立界面(具體參數如目前區域、網段等,實驗裡都有提供具體資訊):
建立完之後的頁面:
1.2 建立彈性雲伺服器ECS
在雲桌面浏覽器頁面中的左側菜單欄,點選“服務清單”->“計算”->“彈性雲伺服器ECS”進入網雲伺服器控制台:
點選“購買彈性雲伺服器”并設定雲伺服器參數(計費模式、CPU架構、規格、鏡像、系統盤、網絡配置、使用者名密碼等進階配置):
勾選同意《華為鏡像免責聲明》,點選“立即購買”,就開始建立ECS了:
建立的ECS顯示正在運作中了:
2.雲伺服器環境配置
2.1.安裝IIS服務
找到1.2步驟建立的彈性雲伺服器ECS“ecs-deploy”,單擊右側的“遠端登入”,在新彈出的登入頁面,點選“立即登入”:
等待開機後,單擊頁面上方“Ctrl+Alt+Del”進行解鎖:
輸入建立彈性雲伺服器ECS時設定的密碼(預設密碼是7fbAt97#vg)進行登入;進入桌面之後,單擊開始欄,單擊“伺服器管理器”(這裡有個坑,需要我們點選頁面上方的進入全屏模式,否則頁面上顯示不出開始欄)
在“伺服器管理器”,單擊“添加角色和功能”:
在左側導航欄,選擇“安裝類型”,單擊“基于角色或基于功能的安裝”,并單擊“下一步”;單擊“從伺服器池中選擇伺服器”,并在“伺服器池”中選中本伺服器的計算機名,單擊“下一步”;在角色清單内找到“Web伺服器(IIS)”并勾選,在彈窗“添加角色和功能向導”中,單擊“添加功能”,單擊“下一步”;勾選“.Net Framework 3.5功能”,單擊“下一步”;單擊“下一步”到最後一頁,單擊“安裝”:
等待IIS服務在彈性雲伺服器ECS上安裝成功。
2.2 安裝Node.js
在雲伺服器中打開浏覽器,在位址欄手動輸入Node.js下載下傳網址:http://nodejs.cn/download/,進入Node.js下載下傳網站,單擊Windows安裝包“64位”,單擊“運作”,運作Windows安裝包:
進入Node.js安裝向導,安裝nodejs,檢視安裝成功,單擊“Finish”:
2.3 安裝Express、Socket.io、Forever
簡單介紹下
Express是目前最流行的基于Node.js的Web開發架構。
Socket.io是一個面向實時web應用的JavaScript庫。
Forever是一個簡單的指令式的node.js的守護程序。
言歸正傳,我們繼續安裝步驟。
單擊開始欄,單擊“Windows PowerShell”:
在PowerShell中依次運作如下三條指令(等待指令執行成功進行下一條執行):
npm install -g express
npm install -g socket.io
npm install forever -g
執行成功如下圖所示:
2.4.配置主機的授信
在雲伺服器中打開浏覽器,在位址欄輸入以下網址:https://sandbox-experiment-resource-north-4.obs.cn-north-4.myhuaweicloud.com/reversi-play-online/windows2016.zip點選“儲存”:
進入windows2016.zip所在目錄,滑鼠選中檔案,點選右鍵選擇“全部解壓縮…”解壓“windows2016.zip”,得到“windows2016.ps1”腳本,如下圖所示:
在PowerShel中輸入
cd .\Downloads\windows2016\
,切換到“windows2016.ps1”腳本所在目錄,指令行繼續輸入
set-executionpolicy unrestricted
,回車執行後,再輸入“Y”執行:
指令行繼續輸入
.\windows2016.ps1
,回車執行後再輸入“R”執行;指令行輸入
winrm e winrm/config/listener
,若出現HTTPS表示監聽成功,即windows2016部署環境自動化配置成功:
2.5 關閉彈性雲伺服器ECS防火牆
點選開始按鈕,直接輸入搜尋“防火牆”打開防火牆設定:
關閉防火牆,如下圖所示:
2.6.開放伺服器端口
打開windows開始标志,點選“Windos管理工具”, 輕按兩下“進階安全Windows防火牆”如下圖所示:
打開後,點選“入站規則”->“建立規則”如下圖所示:
選擇“端口”點選“下一步”,輸入端口“12001”點選“下一步”,點選“下一步”->“下一步”,參數預設;輸入名稱“heibaiqiWeb”點選“完成”如下圖所示:
3.建立項目及建構部署
3.1.建立項目
簡單介紹
什麼是DevCloud?華為雲軟體開發服務(DevCloud)是一站式雲端DevOps平台,面向開發者提供的雲服務,即開即用,随時随地在雲端進行項目管理、代碼托管、代碼檢查、流水線、編譯、建構、部署、測試、釋出等,讓開發者快速而又輕松地開啟雲端開發之旅。
實驗桌面中的浏覽器切換回華為雲頁面,滑鼠移動到雲桌面浏覽器頁面中左側菜單欄,點選“服務清單”->“軟體開發平台DevCloud”;進入平台頁面後,選擇“項目管理”進入項目清單頁面,點選“立即使用”,進入項目建立頁面,如下圖所示:
點選“建立項目”,選擇“看闆”,在建立項目彈窗中,設定項目名稱為“Cocos_ReversiOnline”,輸入項目資訊,點選“确定”,如下圖所示:
建立完成即跳轉如下圖頁面:
3.2 下載下傳源碼及建立代碼倉庫
切換到實驗桌面,打開“Xfce 終端”,複制以下代碼到終端回車執行,下載下傳用戶端和服務端的源碼檔案:
wget https://sandbox-experiment-resource-north-4.obs.cn-north-4.myhuaweicloud.com/reversi-play-online/ReversiOnline_Client.zip
wget https://sandbox-experiment-resource-north-4.obs.cn-north-4.myhuaweicloud.com/reversi-play-online/ReversiOnline_Server.zip
下載下傳完之後,輸入指令
ls
檢視下載下傳檔案:
執行以下代碼配置使用者名和郵箱:
git config --global user.name "您的使用者名"
git config --global user.email "您的郵箱"
執行以下代碼
ssh-keygen -t rsa -C "您的郵箱"
,生成ssh密鑰(一直回車至下圖出現),執行成功如下圖所示:
執行以下代碼
cat .ssh/id_rsa.pub
,檢視并【複制】密鑰:
切換至浏覽器,在3.1步驟建立好的項目中,單擊上方菜單“代碼”->“代碼托管”進入代碼托管界面,點選“設定我的SSH密鑰”,如下圖所示:
進入密鑰設定頁面,點選“添加SSH密鑰”填寫複制的密鑰。
① 标題:輸入秘鑰後自動生成
② 密鑰:粘貼已複制密鑰
傳回上一級“代碼托管”管理頁面,點選“普通建立”,建立倉庫:
① 代碼倉庫名稱:ReversiOnline_Client
② 歸屬項目:3.1步驟建立的項目名稱,如:Cocos_ReversiOnline
參照上述步驟,建立倉庫名稱為【“ReversiOnline_Server”】代碼倉庫。
3.3.推送代碼到代碼倉庫
點選倉庫名稱【“ReversiOnline_Client”】,進入代碼倉,點選“克隆/下載下傳” ,檢視SSH克隆位址:
切換到“Xfec 終端”,執行以下代碼
git clone gitaddr
下載下傳。【複制】SSH克隆位址,将下方代碼中的“gitaddr”替換為複制的克隆位址,執行時選擇接收密鑰輸入“yes”:
【參照上述步驟】,點選名為【“ReversiOnline_Server”】代碼倉,克隆下載下傳代碼倉庫。第二次執行不需要接收密鑰:
執行以下代碼設定Git:
git config --global user.email "[email protected]" && git config --global user.name "devcloud"
執行以下指令,解壓源碼“ReversiOnline_Client. Zip”到 “ReversiOnline_Client” 倉庫。解壓過程中可能遇到同名檔案覆寫提示,根據提示輸入“A”,回車全部覆寫即可:
執行以下指令
unzip ReversiOnline_Server.zip -d ReversiOnline_Server/
,解壓源碼“ReversiOnline_Server. zip”到 “ReversiOnline_Server” 倉庫:
執行以下指令
cd ReversiOnline_Client/
,切換到ReversiOnline_Client代碼倉庫;執行以下指令
git add .
添加源碼到倉庫;執行以下指令
git commit -m "init"
送出源碼;執行以下指令
git push
推送源碼到遠端倉庫。執行成功如下圖所示:
執行以下指令
cd ../ReversiOnline_Server/
切換到“ReversiOnline_Server”倉庫;執行以下指令
git add .
添加源碼到倉庫;執行以下指令
git commit -m "init"
添加源碼到倉庫;執行以下指令
git push
推送源碼到遠端倉庫。執行成功如下圖所示:
3.4 修改源碼配置檔案
源碼上傳完成,切換至浏覽器,點選 “ReversiOnline_Client”倉庫,進入倉庫對“ServerIP”配置進行修改。
3.5.建構應用
完成伺服器端和用戶端源碼的編譯建構,生成可用于應用部署的建構包。
用戶端:
服務端:
3.6.執行建構任務
單擊“建構&釋出”- > “編譯建構”重新進入建構編譯清單。依次單擊執行“開始建構”,進行代碼包的編譯建構,等待編譯建構成功:
之後點選“釋出”,檢視到兩個建構包,說明建構包釋出成功。
3.7 擷取并上傳playbook
playbook可以幫助我們把項目部署到windows主機上,通常的playbook都是啟動IIS服務,用來運作web網站。
切換至“Xfce 終端”,執行以下指令
cd /home/user/Desktop && wget https://sandbox-experiment-resource-north-4.obs.cn-north-4.myhuaweicloud.com/reversi-play-online/nodejs_playbook.zip
,下載下傳nodejs_playbook.
執行以下指令
wget https://sandbox-experiment-resource-north-4.obs.cn-north-4.myhuaweicloud.com/reversi-play-online/iis_playbook.zip
下載下傳iis_playbook.
切換至浏覽器,在釋出頁面,點選“上傳”,選中剛剛下載下傳的檔案,點選“open”進行上傳。
上傳完成後最終釋出頁面如下圖所示:
3.8.配置主機組
點選“更多”->“設定”->“通用設定”進入頁面後,點選左側欄“主機組管理”。進入主機組管理頁面後,點選“建立主機組”,點選“添加主機”:
3.9.伺服器端部署
點選“建構&釋出”->”部署”進入部署頁面,單擊“建立任務”。
部署過程可能需要較長時間,點選“部署”回到任務清單,可檢視到任務的部署狀态,如下圖所示:
3.10.用戶端部署
仿照3.9步驟,建立一個用戶端的部署任務“ReversiOnline_Web_Deploy”,并依次添加四個部署步驟。配置“選擇部署來源”。
3.11.結果驗證
在實驗桌面的浏覽器裡新打開一個浏覽器視窗,在位址欄輸入“EIP:12001”,如:49.4.26.181:12001,通路成功如下圖所示。注 - EIP替換為1.2步驟彈性雲伺服器ECS的彈性IP:
實踐總結
- 彈性雲伺服器ECS時設定的密碼(預設密碼是7fbAt97#vg)盡量設定簡單點,預設密碼還是有點複雜;在登入雲伺服器環境的時候密碼不能複制,需要自己手動輸入
- 雲伺服器環境右邊的運作概覽這一欄不能隐藏掉,說實在有點影響使用體驗,很占位置:
- 進入雲伺服器環境之後,估計因為頁面大小緣故,是看不到開始菜單欄的;需要我們點選進入全屏模式之後,才可以看到左下角的開始菜單欄(這裡其實如果有個提示,也會讓使用者覺得更友好點)
- 雲伺服器環境還是不流暢的,滑鼠能明顯感覺到遲滞;在“伺服器管理器”單擊“添加角色和功能”這個步驟就會導緻系統卡住:
- 整個實驗給的時間還是偏短了點,要是可以再多個半小時到1小時,就可以體驗的更舒服了