以下文章來源于汪宇杰博客,作者汪宇杰
導(dǎo)語
程序員和測試工程師經(jīng)常需要自己搭環(huán)境用于開發(fā)和測試目的,這些機(jī)器可能只會(huì)使用很短一段時(shí)間。通常我們會(huì)在本機(jī)使用Hyper-V、VMWare之類的虛擬機(jī)產(chǎn)品,或者使用企業(yè)IT管理員分配的虛擬機(jī)去完成這項(xiàng)工作。然而安裝配置以及管理這些VM都很麻煩,好在目前許多廠家都有造福IT管理員的解決方案,微軟Azure也給我們提供了一個(gè)DevTest Lab,假裝幫助我們分分鐘配環(huán)境,拒絕996,遠(yuǎn)離ICU。
Azure Lab Services
通過Azure實(shí)驗(yàn)室服務(wù),可以快速在云中設(shè)置團(tuán)隊(duì)環(huán)境(例如,開發(fā)環(huán)境、測試環(huán)境、教室實(shí)驗(yàn)室環(huán)境)。實(shí)驗(yàn)室所有者創(chuàng)建實(shí)驗(yàn)室、預(yù)配Windows或Linux虛擬機(jī)、安裝必要的軟件和工具,并將其提供給實(shí)驗(yàn)室用戶使用。實(shí)驗(yàn)室用戶在實(shí)驗(yàn)室中連接到虛擬機(jī)(VM),以便進(jìn)行日常工作、短期項(xiàng)目或?qū)嶒?yàn)室練習(xí)。用戶開始利用實(shí)驗(yàn)室中的資源后,實(shí)驗(yàn)室管理員可分析多個(gè)實(shí)驗(yàn)室的成本和使用情況,并設(shè)置總體策略以優(yōu)化組織或團(tuán)隊(duì)成本。
該服務(wù)目前包含兩個(gè)獨(dú)立的子服務(wù):
教室實(shí)驗(yàn)室(Classroom Labs)
開發(fā)測試實(shí)驗(yàn)室(DevTest Labs)
我們今天要講的是其中的DevTest Labs,官網(wǎng)概述如下:
可使用Azure開發(fā)測試實(shí)驗(yàn)室來實(shí)現(xiàn)許多關(guān)鍵方案,但其中一個(gè)主要方案涉及使用開發(fā)測試實(shí)驗(yàn)室為開發(fā)人員托管開發(fā)計(jì)算機(jī)。在此方案中,開發(fā)測試實(shí)驗(yàn)室具有以下優(yōu)勢:
開發(fā)人員可快速按需預(yù)配其開發(fā)計(jì)算機(jī)。
通過使用可重用模板和項(xiàng)目,預(yù)配Windows和Linux環(huán)境。
開發(fā)人員可在任何需要的時(shí)候輕松自定義其開發(fā)計(jì)算機(jī)。
管理員可以通過確保開發(fā)者無法獲得超過開發(fā)所需的VM,以及在未使用VM時(shí)將其關(guān)閉來控制成本。
創(chuàng)建DevTest Lab
在Azure Portal里點(diǎn)擊Create a resource,搜索DevTest,即可打開創(chuàng)建向?qū)А?/span>
輸入Lab name,選擇訂閱、資源組、位置、是否自動(dòng)關(guān)機(jī)、是否為公有環(huán)境(互聯(lián)網(wǎng)訪問)。
其中的Resource group要注意,它指的是該實(shí)驗(yàn)室本身的資源組,而不是實(shí)驗(yàn)室里的VM所使用的資源組。
創(chuàng)建完成后,點(diǎn)擊Add添加第一臺(tái)虛擬機(jī)。
搜索并選擇你需要的操作系統(tǒng)鏡像,這個(gè)列表里也包括了許多預(yù)配置的鏡像,如SQL Server、AKS、各種Linux等等,甚至還可以找到Windows 10+Office 365。你也可以制作自己的鏡像用于創(chuàng)建后續(xù)VM。
輸入虛擬機(jī)名稱,管理員賬號(hào)、密碼,選擇虛擬機(jī)大小以及磁盤配置。如果你用過普通的Azure VM服務(wù),會(huì)發(fā)現(xiàn)這個(gè)向?qū)Ь褪莻€(gè)極簡版的Azure VM,省去了網(wǎng)卡、NSG、IP等眾多高級(jí)配置。
Artifact的意思是預(yù)裝的軟件,比如我需要7-zip以及Chrome,就可以在這個(gè)列表里找到,并勾選。當(dāng)然,這個(gè)列表肯定不包含你自己或企業(yè)的專業(yè)軟件,別擔(dān)心,微軟允許從三方庫添加這些artifact(可以自行查閱方法,本文暫不討論)
在VM的高級(jí)設(shè)置中,除了傳統(tǒng)的虛擬網(wǎng)絡(luò)、子網(wǎng)、IP等信息,還多了過期時(shí)間、Claim這兩個(gè)選項(xiàng)。過期時(shí)間很好理解,管理員可以設(shè)置一個(gè)VM的使用期限,而Claim的含義是“認(rèn)領(lǐng)”,即使用之前用戶需要認(rèn)領(lǐng)這臺(tái)機(jī)器,才能開機(jī)使用。用完之后要取消認(rèn)領(lǐng),還給企業(yè)。
等待虛擬機(jī)創(chuàng)建完成后,可以在Labs Overview里看見這臺(tái)機(jī)器。
和使用普通Azure VM非常類似,點(diǎn)擊Connect即可使用RDP或SSH連接到虛擬機(jī),然后你想怎么玩就怎么玩。
如果你不喜歡默認(rèn)分配的DNS名稱也沒關(guān)系,這個(gè)其實(shí)是可以改的!這臺(tái)VM從普通的Azure Virtual Machine界面也能進(jìn)去,進(jìn)去以后就可以點(diǎn)擊DNS name分配一個(gè)新域名。
配置定時(shí)自動(dòng)開關(guān)機(jī)
Azure的意思顧名思義是A zone user rich enough,富人的玩具,我們苦逼程序員還是得省錢進(jìn)ICU里花。因此我們可以設(shè)置定時(shí)開關(guān)機(jī),讓虛擬機(jī)只有996的工作時(shí)間才可用,回家睡覺時(shí)關(guān)機(jī),這樣VM就不會(huì)計(jì)費(fèi)了。
進(jìn)入Configuration and policies
在Auto-start里設(shè)置自動(dòng)開機(jī)時(shí)間,選擇中國時(shí)間早上9點(diǎn),記得勾選星期六,以收取福報(bào)。
同樣,Auto-shutdown里配置為晚上9點(diǎn)。當(dāng)然,也可以配置成半夜12點(diǎn),這樣可以養(yǎng)生。
現(xiàn)在,回到VM的設(shè)置里,就可以完成996定時(shí)設(shè)置了!云福報(bào)!
分配用戶
如果你的需求非常簡單,用戶不多,完全可以只靠RDP+管理員賬號(hào)密碼來分配使用權(quán)限。但是在正規(guī)的組織機(jī)構(gòu)中,通常同步了Azure AD,我們可以通過Azure AD來分配不同用戶和角色使用或管理Labs里的機(jī)器。
由于我的Azure AD是個(gè)人使用,不方便模擬公司環(huán)境,此處摘錄微軟官網(wǎng)文檔:
將用戶添加到實(shí)驗(yàn)室用戶角色
在左側(cè)菜單中,選擇“配置和策略”。
從菜單中選擇“訪問控制(IAM)”,并在工具欄中選擇“+添加角色分配”。
在“添加權(quán)限”頁上,執(zhí)行以下操作:
在“角色”中,選擇“開發(fā)測試實(shí)驗(yàn)室用戶”。
選擇要添加的“用戶”。
選擇“保存”。
參考資料
https://docs.microsoft.com/en-us/azure/lab-services/lab-services-overview