利用AzureAutomation實(shí)現(xiàn)云端自動(dòng)化運(yùn)維(4)-創(chuàng)新互聯(lián)

在上述基本準(zhǔn)備工作做完后,wo們看看如何實(shí)現(xiàn)利用Azure Automation實(shí)現(xiàn)定時(shí)自動(dòng)開關(guān)機(jī)的操作,這種場(chǎng)景非常適合Dev/Test環(huán)境,因?yàn)锳zure的虛擬機(jī)是按照分鐘收費(fèi)的,所以我們可以在開發(fā)測(cè)試人員上班的時(shí)候打開虛擬機(jī),而在下班,周末的時(shí)候關(guān)閉虛擬機(jī),從而節(jié)約成本,從另外一個(gè)層面來講,也是體現(xiàn)云的靈活性。

創(chuàng)新互聯(lián)網(wǎng)絡(luò)公司擁有10多年的成都網(wǎng)站開發(fā)建設(shè)經(jīng)驗(yàn),上千家客戶的共同信賴。提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站開發(fā)、網(wǎng)站定制、買鏈接、建網(wǎng)站、網(wǎng)站搭建、響應(yīng)式網(wǎng)站設(shè)計(jì)、網(wǎng)頁設(shè)計(jì)師打造企業(yè)風(fēng)格,提供周到的售前咨詢和貼心的售后服務(wù)

首先講一下設(shè)計(jì)的基本原則,如何做能讓你的自動(dòng)化腳本更靈活,更具有可移植性:

  • 參數(shù)化:盡量不要在腳本中寫死任何變量,負(fù)責(zé)除了修改代碼,別無他法,而且可維護(hù)性會(huì)變的很差

  • 合理使用資產(chǎn):在Azure的automation中,有一部分配置是需要更新,變化的,所以這一部分配置應(yīng)該放在資產(chǎn)中,讓運(yùn)維人員來修改,比如有哪些虛擬機(jī)需要開機(jī),關(guān)機(jī)

  • 模塊化:通用的一些腳本可以寫成runbook,以便于代碼復(fù)用和共享

DEMO:創(chuàng)建一個(gè)按照指定列表關(guān)閉VM的runbook

  1. 1. 登入portal,選擇新建runbook,選擇從庫中創(chuàng)建,你可以看到其實(shí)已經(jīng)內(nèi)置了很多的腳本,我們選擇Featured里面的Stop Azure Classic VMs,單機(jī)下一步,你可以看到腳本的定義:

    利用Azure Automation實(shí)現(xiàn)云端自動(dòng)化運(yùn)維(4)

  2. 2. 輸入你希望的runbook名稱,選擇我們之前建立的自動(dòng)化賬戶,地區(qū),選擇完成將runbook添加到你的自動(dòng)化賬戶:

    利用Azure Automation實(shí)現(xiàn)云端自動(dòng)化運(yùn)維(4)

  3. 3. 打開自動(dòng)化賬戶,在runbook的tab下你就可以剛才創(chuàng)建的runbook Stop-AzureVMLib,點(diǎn)擊這個(gè)runbook,選擇創(chuàng)作,就可以看到這個(gè)腳本的全部源碼,并可以修改,在底部

    利用Azure Automation實(shí)現(xiàn)云端自動(dòng)化運(yùn)維(4)

    利用Azure Automation實(shí)現(xiàn)云端自動(dòng)化運(yùn)維(4)

    利用Azure Automation實(shí)現(xiàn)云端自動(dòng)化運(yùn)維(4)

  4. 4. Runbook的基本結(jié)構(gòu)如下,以workflow開頭,后面是你的runbook名字,param是你的輸入?yún)?shù),outputtype里面定義了string類型的返回結(jié)果:

    workflow Stop-AzureVMLib

    {

    param (

    [Parameter(Mandatory=$false)]

    [String] $ServiceName

    )

    # Returns strings with status messages

    [OutputType([String])]

    Body

    }

    5. 現(xiàn)在我們?cè)O(shè)計(jì)一個(gè)Stop-VM的可以在實(shí)際環(huán)境中使用的runbook,實(shí)現(xiàn)以下幾個(gè)目標(biāo):

  • 用戶可以配置哪些vm需要被定時(shí)停止,而不需要修改代碼

  • 認(rèn)證信息可以被修改而不需要修改代碼

  • 周六周日不需要定時(shí)關(guān)機(jī)或者開機(jī)

  • 詳細(xì)的執(zhí)行日志信息

6 . 使用Azure的用戶名密碼進(jìn)行認(rèn)證,相關(guān)的orgid,密碼我們都保存在資產(chǎn)中,通過動(dòng)態(tài)獲得,而不需要修改代碼,通過Get-AutomationVariable得到的數(shù)據(jù)都可以在添加資產(chǎn)中添加變量獲得:

#資產(chǎn)中定義的用戶名和訂閱名

$AzureCredentialAssetName = 'automationuser@XXXX.cn'

$AzureSubscriptionIdAssetName = 'automationsubid'

# 得到資產(chǎn)中定義的用戶名密碼和訂閱名稱

$Cred = Get-AutomationPSCredential -Name $AzureCredentialAssetName

$SubId = Get-AutomationVariable -Name $AzureSubscriptionIdAssetName

#獲得需要關(guān)閉的虛擬機(jī)列表,以逗號(hào)分隔

$vmconfiglist = Get-AutomationVariable -Name 'vmnamelist'

$vmlist = $vmconfiglist -split ","

#獲得認(rèn)證,添加訂閱進(jìn)行后續(xù)操作

$null = Add-AzureAccount -Credential $Cred -Environment AzureChinaCloud -ErrorAction Stop

$null = Select-AzureSubscription -SubscriptionId $SubId -ErrorAction Stop

7. 那么如果使用證書的方式,如何獲得認(rèn)證昵?

     $AzureSubscriptionIdAssetName = 'automationsubid'

$subscriptionNameAssetname = 'azuresubscriptionname'

#獲得訂閱ID和訂閱名稱

$SubId = Get-AutomationVariable -Name $AzureSubscriptionIdAssetName

$subscriptionName = Get-AutomationVariable -Name $subscriptionNameAssetname

#獲得認(rèn)證名稱和證書

$certificateName = Get-AutomationVariable -Name "mycertificateName"

$certificate = Get-AutomationCertificate -Name $certificateName

#根據(jù)證書這是當(dāng)前訂閱

Set-AzureSubscription -SubscriptionName $subscriptionName -SubscriptionId $SubId -Certificate $certificate -Environment AzureChinaCloud -ErrorAction Stop

Select-AzureSubscription -SubscriptionId $SubId -ErrorAction Stop

8. 剩下的就是根據(jù)虛擬機(jī)機(jī)器名稱得到虛擬機(jī)進(jìn)行停止虛擬機(jī)的操作了,所有的源代碼我都放在了Github,請(qǐng)分別下載測(cè)試:

通過用戶名密碼驗(yàn)證方式停止虛擬機(jī):

https://github.com/kingliantop/azurelabs/blob/master/automation/stop-azurevms.ps1

通過用戶名密碼驗(yàn)證方式啟動(dòng)虛擬機(jī):

https://github.com/kingliantop/azurelabs/blob/master/automation/start-azurevms.ps1

通過證書方式停止虛擬機(jī):

https://github.com/kingliantop/azurelabs/blob/master/automation/stop-azurevmswithcert.ps1

通過證書方式啟動(dòng)虛擬機(jī):

https://github.com/kingliantop/azurelabs/blob/master/automation/start-azurevmswithcert.ps1

9. runbook編輯完成,點(diǎn)擊發(fā)布正式發(fā)布該runbook,但這個(gè)時(shí)候這些腳本不會(huì)自動(dòng)運(yùn)行,需要你設(shè)置定時(shí)運(yùn)行方式,選擇runbook中的計(jì)劃日程,定義了什么時(shí)候運(yùn)行這些腳本, 選擇鏈接到新計(jì)劃:

利用Azure Automation實(shí)現(xiàn)云端自動(dòng)化運(yùn)維(4)

10. 輸入計(jì)劃的名稱,設(shè)置每天定時(shí)關(guān)機(jī)的計(jì)劃,你可以看到目前的設(shè)置選項(xiàng)中到小時(shí)級(jí),或者每天,但沒有工作日或者周末定義,需要自己寫代碼實(shí)現(xiàn),具體實(shí)現(xiàn)請(qǐng)參考代碼。

利用Azure Automation實(shí)現(xiàn)云端自動(dòng)化運(yùn)維(4)

利用Azure Automation實(shí)現(xiàn)云端自動(dòng)化運(yùn)維(4)

11. 每個(gè)runbook都需要設(shè)置加護(hù)日程,通過這種方式,你就可以實(shí)現(xiàn)早上開機(jī),晚上關(guān)機(jī),周末不開關(guān)機(jī)等操作。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

新聞名稱:利用AzureAutomation實(shí)現(xiàn)云端自動(dòng)化運(yùn)維(4)-創(chuàng)新互聯(lián)
當(dāng)前鏈接:http://muchs.cn/article0/iocoo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)公司、App開發(fā)品牌網(wǎng)站建設(shè)、建站公司關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司