真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何利用AzureAutomation以及Tag自動(dòng)開(kāi)關(guān)AzureVM

這是本博客第一篇技術(shù)相關(guān)的小貼士,在這里我不會(huì)詳細(xì)介紹所涉及的技術(shù)組件的具體使用細(xì)節(jié),因?yàn)槲蚁嘈胚@些大家都可以通過(guò)官方文檔了解到。如果你是一個(gè)看了官方文檔依然一臉茫然的IT小白,個(gè)人建議是先從基礎(chǔ)重新學(xué)起再來(lái)看具體的需求和方案。

創(chuàng)新互聯(lián)公司專注于萊陽(yáng)企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站,商城網(wǎng)站定制開(kāi)發(fā)。萊陽(yáng)網(wǎng)站建設(shè)公司,為萊陽(yáng)等地區(qū)提供建站服務(wù)。全流程定制網(wǎng)站設(shè)計(jì),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)

在這片文章里我們會(huì)涉及到兩個(gè)概念,一個(gè)是Azure automation,另外就是resource的tag。

Tag這個(gè)我就不多說(shuō)了,絕大多數(shù)系統(tǒng)或者平臺(tái)都會(huì)帶有的Key-value標(biāo)識(shí)功能。

Automation的話,至少要了解runbook, job, schedule 這幾個(gè)基本的概念才能繼續(xù)往下看。

需求:為了避免不必要的資源浪費(fèi),許多測(cè)試開(kāi)發(fā)環(huán)境可以在非工作時(shí)間進(jìn)行關(guān)機(jī)來(lái)達(dá)到節(jié)約成本的目的。

如果貴公司錢多的燒不完,則可以自豪的忽略這個(gè)需求。

話不多說(shuō)先貼上runbook供大家參考:


---------------------------------------------------

workflow Autoshutdown_by_tag

{

????$connectionName ="AzureRunAsConnection"

try

{

???$servicePrincipalConnection=Get-AutomationConnection -Name$connectionName

???"Logging in to Azure..."

??? Add-AzureRmAccount `

??????? -ServicePrincipal `

??????? -TenantId$servicePrincipalConnection.TenantId `

??????? -ApplicationId$servicePrincipalConnection.ApplicationId `

??????? -CertificateThumbprint$servicePrincipalConnection.CertificateThumbprint `

??????? -EnvironmentName AzureChinaCloud

}

catch {

???if (!$servicePrincipalConnection)

??? {

???????$ErrorMessage ="Connection$connectionName not found."

???????throw$ErrorMessage

??? }else{

??????? Write-Error -Message$_.Exception

???????throw$_.Exception

??? }

}


$subs = Get-AzureRmSubscription

Foreach ($subin$subs)

{

??? Select-AzureRmSubscription -SubscriptionId$sub.SubscriptionId -ErrorActionContinue

???$VMs = Get-AzureRmVm -status| Where-Object {$_.Tags.Keys -eq"AutoShutdown" -and$_.Tags.Values -eq"Yes" }

?ForEach -Parallel -ThrottleLimit10 ($VMin$VMs)

? {

?If ($vm.powerstate -eq"VM deallocated")

????? {Write-Output"$($VM.Name) is already shutdown"}

?else

?? {Write-Output"Stop:$($VM.Name)";Stop-AzureRMVM -Name$VM.Name -ResourceGroupName$VM.ResourceGroupName -force }

? }

}

}

---------------------------------------------------

具體說(shuō)明:

1. 首先這個(gè)runbook的目的就是遍歷你的賬號(hào)下所有訂閱下用有標(biāo)簽Autoshutdown并且值為Yes的虛擬機(jī),并檢測(cè)他們的powerstate, 如果不是 deallocated 狀態(tài)則執(zhí)行stop-AzureRMVM 命令進(jìn)行關(guān)機(jī)。標(biāo)簽和值可以完全按照各自喜好自定義。

2. 此runbook需要關(guān)聯(lián)相對(duì)應(yīng)的schedule才能按時(shí)執(zhí)行,具體如何操作就不深入闡述了。

3. 此Automation的run as account不能expired, 同時(shí)必須要對(duì)對(duì)應(yīng)的虛擬機(jī)擁有開(kāi)關(guān)機(jī)的權(quán)限。RBAC中自定義role這塊我之后會(huì)有專門的文章介紹,這里就不深入闡述。

4. 這里用的是workflow,而不是普通的powershell腳本。最主要的優(yōu)勢(shì)是可以做到并行操作。? ”ForEach -Parallel -ThrottleLimit10“在這里就設(shè)置了最多同時(shí)進(jìn)行10臺(tái)虛擬機(jī)的關(guān)機(jī)操作。當(dāng)你的云平臺(tái)上有大量的虛擬機(jī)時(shí),順序操作會(huì)消耗大量的腳本運(yùn)行時(shí)間,一般來(lái)說(shuō)一臺(tái)虛擬機(jī)的關(guān)機(jī)動(dòng)作5到10分鐘不等,數(shù)量一大可能你的job就會(huì)超時(shí)。

5. 開(kāi)機(jī)的runbook與關(guān)機(jī)類似,只是用到的是start-AzureRMVM命令。 另外在新的AzureRM.Compute 模塊中,stop-AzureRMVM會(huì)有需要人機(jī)交互進(jìn)行確認(rèn),因此需要使用 -force 強(qiáng)制執(zhí)行,這個(gè)小tip可以使用在任何其他的類似的powershell命令中。

其實(shí)這里涉及到了一些其他的知識(shí)點(diǎn),有一些我會(huì)在其他的小貼士中詳細(xì)介紹。但是如果你只是想單純的讓這個(gè)功能跑起來(lái),其實(shí)還是非常容易的。

對(duì)于一個(gè)IT從業(yè)人員,如果只是知其然也是可以混口飯吃的。但是一旦遇到高手依然會(huì)原形畢露,被別人鄙視一番也是自然。因此我們還是得知其所以然。

一般來(lái)說(shuō)IT知識(shí)的掌握分為四個(gè)階段: User-->Know what--->troubleshooting--->Expert。 如果是技術(shù)相關(guān)崗位,至少也要在自己的專業(yè)領(lǐng)域達(dá)到Troubleshooting或者expert級(jí)別,而對(duì)其他的至少要做到know what。這里又涉及到了知識(shí)體系的搭建,在之后我也會(huì)分享一些相關(guān)的體會(huì)。

希望這篇文章可以對(duì)日常維護(hù)Azure 的朋友們有所啟發(fā),如果有什么建議歡迎留言討論。


分享文章:如何利用AzureAutomation以及Tag自動(dòng)開(kāi)關(guān)AzureVM
當(dāng)前路徑:http://weahome.cn/article/jscdjd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部