Azure Lab Service能夠輕鬆打造雲端化的電腦教室,本文將以學校電腦教室環境為例,實地透過Azure Lab Service建立具備GPU的VM虛擬主機以及普通的VM虛擬主機,將不同的資源快速分派給適用的師生上課,並有效避免眾多應用程式之間發生資源衝突的情況。
企業組織或學校過去的內部教育訓練場所,為了使講師與學員的運作環境一致,以便後續教育訓練時能夠讓彼此專注在上課內容中,而非花費時間解決PC/NB硬體環境的差異或問題上,通常會建立PC/NB硬體環境一致的電腦教室,如圖1所示。對於企業和組織來說,通常規模和數量上較為小型,並且有內部的IT人員協助處理,所以在電腦教室管理方面並不會造成太大的困擾。
但對於學校來說,不僅需要建置多間電腦教室以便滿足校內師生授課的需求,還必須因應不同老師的教學環境需求,導致每間電腦教室內的PC主機硬體也有所差異。舉例來說,當老師的授課內容為Microsoft Office、MATLAB等等,常見或無特殊需求的應用程式時,只需要一般PC主機硬體即可滿足,然而授課內容為SolidWorks這種運算密集度高的應用程式時,倘若PC主機硬體未配置GPU,那麼老師在授課上以及學生在操作學習上將會產生困擾。
此外,為了讓電腦教室能夠更有效運用和彈性調配,常見的做法就是在電腦教室的PC主機硬體中,將該學期老師開課會使用到的所有應用程式,全部一股腦地安裝在電腦教室的PC主機硬體內。雖然達到電腦教室有效運用和彈性調配的目的,但PC主機即便硬體效能再強,在安裝數量眾多的應用程式後,輕者可能只是執行效能降低,最怕的是眾多應用程式間發生資源衝突,造成應用程式無法開啟或容易發生崩潰的情況,並且隨著COVID-19疫情反覆不斷,實體的電腦教室也因為有群聚風險而暫緩使用。
因此,本文將深入剖析和實戰演練,透過「Azure實驗室服務」(Azure Lab Service),為企業和組織及學校輕鬆打造雲端化的電腦教室。以上述學校電腦教室環境為例,透過Azure實驗室服務,為學生建立具備GPU的VM虛擬主機,以便因應SolidWorks授課需求,另外建立的普通VM虛擬主機,則用於授課內容為MATLAB和其他普通應用程式的課程,如圖2所示,即可達到快速將不同的資源分派給適用的師生上課,並且有效避免眾多應用程式之間發生資源衝突的情況。
認識Azure實驗室服務運作架構
在實作演練Azure實驗室服務之前,先概要了解整體運作架構,以便後續管理及使用上發生問題時,能夠迅速找出問題可能發生的原因。
下列便是Azure實驗室服務中相關的技術名詞和運作架構示意圖,如圖3所示:
‧Azure訂閱帳戶(Azure Subscription):在企業組織及學校中,IT管理人員可以透過Azure訂閱帳戶,管理和使用Azure資源及相關服務。
‧資源群組(Resource Group):在Azure訂閱帳戶中,可以建立一個或多個資源群組進行邏輯分組。值得注意的是,後續建立的Azure實驗室帳戶和共用映像檔一旦與選定的資源群組綁定,便無法變更,必須刪除後重新建立才行。
‧Azure實驗室訂閱帳戶(Azure Lab Services Subscription):在Azure實驗室訂閱帳戶中,可以建立一間或多間實驗室,每間實驗室內可以建立不同用途和規模的VM虛擬主機。簡單來說,管理人員可以把每一間實驗室當成是一間電腦教室的概念。
‧實驗室(Classroom Lab):在實驗室內將會運作多台VM虛擬主機,這些VM虛擬主機是採用共用映像檔的方式進行大量部署,並且不同的實驗室都將配置不同的虛擬網路。舉例來說,管理人員可以建立具備GPU的VM虛擬主機,提供教師對於SolidWorks課程的授課需求,另一間實驗室建立一般用途的VM虛擬主機,提供教師對於MATLAB和其他普通應用程式的課程。
‧共用映像檔倉庫(Shared Image Gallery):提供實驗室建立VM虛擬主機時的共用映像檔,這些共用映像檔就是不同的作業系統範本,也就是教師所要授課的運作環境範本。簡單來說,教師在建立實驗室準備部署大量的VM虛擬主機時,可以為VM虛擬主機選擇所要套用的共用映像檔,達成快速部署並且運作環境一致的目的。
親手打造Azure實驗室服務
接下來,將實際示範如何打造Azure實驗室服務(Azure Lab Services)。
建立Azure實驗室服務(管理人員)
在Azure實驗室服務運作架構中,首先要建立具備管理整體實驗室架構的管理人員帳戶,後續當然也可以依據需求將相關管理人員加入至管理權限名單中。一般來說,會先讓擁有Azure訂閱帳戶的管理人員建立實驗室服務後,再指派相關管理人員。
登入Azure Portal管理介面後,依序點選「Home > Create a resource > Categories > DevOps > Lab Services > Create」,便會引導至建立實驗室訂閱帳戶的頁面資訊,管理人員可依據需求填寫和選擇下列欄位,如圖4所示:
‧Lab Account Name:鍵入此Azure實驗室訂閱帳戶名稱,在本文實作環境中鍵入的名稱為「okd-101-lab」。
‧Subscription:選擇建立實驗室訂閱帳戶所要使用的Azure訂閱帳戶,本文實作環境為「Weithenn Labs - MSDN」。
‧Resource group:設定此實驗室訂閱帳戶所要使用的資源群組名稱,本文實作環境為「RG-OKD-101-Lab」。
‧Location:選擇實驗室訂閱帳戶和資源群組,以及後續部署電腦教室和VM虛擬主機時所要使用的Azure資料中心,本文實作環境選用「Korea South」資料中心。
鍵入和選擇建立實驗室訂閱帳戶的相關資訊後,管理人員便可依據需求調整進階選項,或針對其他選擇採用預設值直接按下〔Review + Create〕按鈕,再次檢查相關組態設定值內容無誤後按下〔Create〕按鈕,便會立即建立實驗室訂閱帳戶和資源群組。
當實驗室訂閱帳戶和資源群組建立完成,頁面就會顯示「Your deployment is complete」訊息,並按下〔Go to resource〕按鈕,即可將頁面導向至實驗室訂閱帳戶管理頁面。
當實驗室訂閱帳戶建立完畢,後續需要加入額外的管理人員帳戶時,只要將該使用者帳戶加入至該實驗室訂閱帳戶中,並且指派具備「實驗室建立者」(Lab Creator)角色即可。
在實驗室訂閱帳戶管理頁面中,依序點選「Access control(IAM) > Add > Add role assignment(Preview) > Role」,在Role角色頁面中勾選「Lab Creator」項目並按下〔Next〕按鈕。然後,在Members成員頁面中,先點選Select members再選擇要加入Lab Creator角色的使用者帳號,檢視無誤後按下〔Review + assign〕按鈕即可,如圖5所示。此時,IT管理人員便可以指派給講師具備管理權限,以便後續講師可以自行建立雲端電腦教室,以及部署學員所要使用的VM虛擬主機。
建立及管理雲端電腦教室(講師)
當IT管理人員為講師指派具備實驗室訂閱帳戶的管理權限後,便可以依據課程需求建立雲端電腦教室,並且部署教育訓練時需要的VM虛擬主機運作環境,再指派給相關學員以便登入存取上課環境。
登入實驗室訂閱帳戶管理介面後,依序點選「Overview > Create a lab」項目,此時將會另開新的瀏覽頁面,並自動導向至「Azure實驗室服務網站」(labs.azure.com),在通過使用者身分驗證程序後,便順利登入Azure實驗室服務網站。
在Azure實驗室服務網站中,按下〔Create lab〕按鈕準備建立實驗室,也就是建立一間雲端電腦教室的概念。在建立實驗室的視窗中,首先鍵入及選擇這間雲端電腦教室的相關資訊,如圖6所示:
‧Name you lab:鍵入這間雲端電腦教室的名稱,以便學員登入時方便識別使用的是哪間雲端電腦教室,本次實作鍵入的名稱為「OKD 101 Lab Classroom」。
‧Which virtual machine image do you want to use:選擇稍後部署範本VM虛擬主機時所要採用的映像檔,本例選擇採用「CentOS-based 8.3」作業系統範本。
‧Which virtual machine size do you need:選擇部署VM虛擬主機時的運作規模大小,從最小規模2 Cores/3.5GB RAM的一般用途VM虛擬主機,至最大12 Cores/112GB RAM具備GPU的VM虛擬主機都有,在本文實作環境中選擇支援巢狀式虛擬化的大型規模VM虛擬主機「Large, 8 Cores, 32GB RAM」,並且預估每小時的費用為「$0.84」。
在部署第二階段Virtual machine credentials頁面中,為稍後部署的大量VM虛擬主機,組態設定採用相同的「使用者帳號」(Username)和「密碼」(Password),鍵入的預設登入密碼必須符合複雜性原則,也就是密碼必須包含「數字」、「英文大小寫」、「特殊符號」才行。並且,須確認下方「Use same password for all virtual machines」選項為啟用狀態,如圖7所示。倘若未啟用預設密碼機制,屆時每位學員第一次登入VM虛擬主機時,系統便會彈出需要重新設定密碼的視窗。
在部署第三階段Lab policies頁面中,在「Lab hours available to each user outside of scheduled events」欄位,組態設定學員在排定的上課時間之外,還有額外多少小時能夠使用VM虛擬主機,預設為10小時,本文實作環境調整為「1小時」。
確認無誤後按下〔Finish〕按鈕,便會開始建立雲端電腦教室,在建立頁面中可以看到系統提示最多可能需要花費20分鐘,才能將雲端電腦教室建立完畢,如圖8所示。後續,講師就能夠隨時調整學員可額外使用的時數。
當範本VM虛擬主機部署完畢,預設情況下為「停止」(Stopped)運作的狀態。此時,在Template頁面中啟動該台範本VM虛擬主機,當狀態轉換為「運作中」(Running)時,先按下〔Connect to template〕按鈕,確認是否能夠透過RDP連線至Windows虛擬主機,或者透過SSH連線至Linux虛擬主機,舉例來說,本文實作環境為SSH連線至Linux虛擬主機,當按下〔Connect to template〕按鈕時,系統便會彈出視窗,讓管理人員複製SSH連線相關指令和參數,方便連線至該台範本VM虛擬主機。
順利連線至範本VM虛擬主機後,接著是為範本VM虛擬主機安裝相關應用程式或是軟體套件,以及客製化的組態設定,以便稍後可以利用此範本VM虛擬主機來達到快速部署且運作環境一致的目標。在本文實作環境中,將範本VM虛擬主機Linux系統中預設啟用的SELinux安全機制關閉,在完成範本VM虛擬主機的客製化組態設定後,便可按下〔Stop template〕按鈕,如圖9所示,將範本VM虛擬主機進行關機的動作。而須注意的是,範本VM虛擬主機在運作時將會花費成本,所以管理人員應該確保客製化設定完成後,關閉範本VM虛擬主機,以避免產生不必要的費用支出。
此時,按下範本VM虛擬主機上的〔Publish〕按鈕,於彈出的Publish template視窗中,在Set the maximum number of machines in the lab欄位內,鍵入要大量部署給學員使用的VM虛擬主機數量,本文實作鍵入數字「3」,表示部署3台VM虛擬主機。後續,學員人數倘若有增減的情況,講師也可以隨時調整部署的VM虛擬主機數量。
待VM虛擬主機部署作業完成後,點選「Virtual machine pool」項目,便可查看部署給學員的VM虛擬主機狀態和相關資訊。目前這些部署的VM虛擬主機尚未指派給學員存取,並且運作狀態也處於關機的情況,講師可以在管理介面中按下〔Start all〕圖示鈕,如圖10所示,預先幫所有學員啟動VM虛擬主機,或是屆時學員存取成功後自行啟動VM虛擬主機。
如同管理傳統電腦教室一樣,在學校未開放時間或是例假日時,通常會將電腦教室內的PC主機關機,以避免不必要的電力浪費。在公有雲上的雲端電腦教室也是同樣的管理概念,因為在公有雲的環境中,只要VM虛擬主機處於運作狀態下就會使用資源並進行計費,然而學員可能在練習後忘了關機,或其他因素導致VM虛擬主機處於運作狀態,造成不必要的雲端費用支出。
因此,講師可以透過Azure實驗室的「排程」(Schedule)機制,讓部署在雲端電腦教室中的VM虛擬主機,在講師指定的上課時間自動開機,以及下課時間自動關機的動作。
此外,為了提供給學員下課後仍然能夠持續練習的時間,在建立雲端電腦教室前講者組態設定的使用者配額,就是提供學員在下課時間時,仍然能夠使用VM虛擬主機的時間額度。
依序點選「Schedule > Add scheduled event」,在排程組態設定視窗中,選擇和提供雲端電腦教室開放給學員連線VM虛擬主機的時間資訊,如圖11所示:
‧Event type:提供Standard、Stop only、Start only等三種方式,其中Standard便是包含自動開機和關機的設定,Stop only為提供自動關機設定,Start only為提供自動開機設定。
‧Date:選擇排程機制執行的開始時間,預設採用當天日期。
‧Start time:選擇雲端電腦教室內VM虛擬主機自動開機時間,例如早上8點。
‧Stop time:選擇雲端電腦教室內VM虛擬主機自動關機時間,例如中午12點30分。
‧Time zone:選擇排程機制所要套用的時區,例如Taipei。
‧Repeat:選擇要重複套用排程機制的時間,例如套用排程時間至每週一、三、五,並且直到2021年12月31日止。
講師要做的最後一件事,就是指派哪些學員可以存取這間雲端電腦教室的VM虛擬主機。Azure實驗室支援兩種機制,分別是「Azure AD(Azure Active Directory)」和「電子郵件」的方式,讓學員能夠存取雲端電腦教室。在Azure AD方面,講師只要依序點選「Users > Sync from group」,接著在彈出的視窗中選擇要同步的Azure AD群組即可。
另一種新增學員名單的方式是,依序點選「Users > Add users manually」,在彈出的視窗中採用「Add by email address」選項,由講師將學員的電子郵件位址鍵入,或是選擇「Upload CSV」選項,透過上傳CSV檔案的方式,一次性大量新增為數眾多的學員電子郵件位址。完成新增學員名單的動作後按下〔Invite all〕按鈕,如圖12所示,在彈出視窗中鍵入邀請學員加入這間雲端電腦教室的資訊,然後按下〔Send〕按鈕,便會送出邀請學員存取雲端電腦教室的電子郵件。
順利寄出電子郵件邀請後,學員便會收到註冊雲端電腦教室的邀請郵件,如圖13所示。此時,學員只要按下邀請郵件中的〔Register for the lab〕按鈕,並通過Microsoft帳戶使用者身分驗證程序,便能存取雲端電腦教室。
存取及使用雲端電腦教室(學員)
當學員順利通過註冊程序後,便會看到講師為學員建立的雲端電腦教室。此時,VM虛擬主機的狀態如果為「關機」(Stopped),那麼學員可以自行啟動VM虛擬主機,倘若是在講師指定上課時間登入的話,那麼VM虛擬主機應該為「運作中」(Running)狀態,如圖14所示。
同樣地,學員只要按下右下角的〔Connect to virtual machine〕圖示鈕,即可得到SSH至上課用VM虛擬主機的連線方式。成功登入後,可以看到在剛才講師製作範本VM虛擬主機時將CentOS作業系統中預設啟用的SELinux安全性機制關閉,所以大量部署出來的學員用VM虛擬主機,將如同範本VM虛擬主機,都已經將SELinux安全性機制關閉,如圖15所示。值得注意的是,學員登入Linux虛擬主機時,並非採用預設的Port 22而是隨機的連接埠號,例如本文實作環境為Port 60402。
管理雲端電腦教室(講師)
事實上,當講師發出邀請電子郵件給學員,而學員也按下〔Register for the lab〕按鈕完成註冊動作後,講師便可以在「users」項目中查看學員名單中的Status欄位,由Not registered轉換為Registered,即表示註冊成功。同時,也可以在這裡為個別學員調整課外使用雲端電腦教室的時間,只要點選「Adjust quota」並鍵入延長時數,即可為個別學員增加額外使用雲端電腦教室的時數。
在「Virtual machine pool」項目中,除了可以看到VM虛擬主機的虛擬IP位址和使用時間之外,也能夠幫忙學員的VM虛擬主機進行開機或關機,甚至強制「重新啟動」(Reset)的動作,如圖16所示,同時也可連線至學員的VM虛擬主機幫忙進行除錯的動作。
最後,講師可以在「Dashboard」頁面中,快速看到雲端電腦教室的使用概況,包括範本VM虛擬主機、學員的VM虛擬主機數量、學員存取清單數量、排程時間等等,以及根據講師設定的排程時間和允許下課後存取時間,進行統計後整體雲端電腦教室的費用估算,如圖17所示。
結語
透過本文的深入剖析及實戰演練示範之後,相信能夠幫助企業和組織或學校快速地建立全面雲端化的電腦教室環境,甚至相關研討會以及活動,例如「黑客松」(Hackathon)或「工作坊」(Workshop)等等,也都非常適合使用Azure實驗室服務,達到快速地建立和部署教學使用環境的目的。
<本文作者:王偉任,Microsoft MVP及VMware vExpert。早期主要研究Linux/FreeBSD各項整合應用,目前則專注於Microsoft及VMware虛擬化技術及混合雲運作架構,部落格weithenn.org。>