中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何利用Azure Automation以及Tag自動開關Azure VM

發布時間:2020-06-12 07:58:11 來源:網絡 閱讀:291 作者:雷萌德 欄目:云計算

這是本博客第一篇技術相關的小貼士,在這里我不會詳細介紹所涉及的技術組件的具體使用細節,因為我相信這些大家都可以通過官方文檔了解到。如果你是一個看了官方文檔依然一臉茫然的IT小白,個人建議是先從基礎重新學起再來看具體的需求和方案。


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


Tag這個我就不多說了,絕大多數系統或者平臺都會帶有的Key-value標識功能。

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



需求:為了避免不必要的資源浪費,許多測試開發環境可以在非工作時間進行關機來達到節約成本的目的。

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

話不多說先貼上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 ($sub in $subs)


{



??? Select-AzureRmSubscription -SubscriptionId $sub.SubscriptionId -ErrorAction Continue


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



? ForEach -Parallel -ThrottleLimit 10 ($VM in $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 }


? }



}


}


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


具體說明:

1. 首先這個runbook的目的就是遍歷你的賬號下所有訂閱下用有標簽Autoshutdown并且值為Yes的虛擬機,并檢測他們的powerstate, 如果不是 deallocated 狀態則執行stop-AzureRMVM 命令進行關機。標簽和值可以完全按照各自喜好自定義。

2. 此runbook需要關聯相對應的schedule才能按時執行,具體如何操作就不深入闡述了。

3. 此Automation的run as account不能expired, 同時必須要對對應的虛擬機擁有開關機的權限。RBAC中自定義role這塊我之后會有專門的文章介紹,這里就不深入闡述。

4. 這里用的是workflow,而不是普通的powershell腳本。最主要的優勢是可以做到并行操作。? ”ForEach -Parallel -ThrottleLimit 10“在這里就設置了最多同時進行10臺虛擬機的關機操作。當你的云平臺上有大量的虛擬機時,順序操作會消耗大量的腳本運行時間,一般來說一臺虛擬機的關機動作5到10分鐘不等,數量一大可能你的job就會超時。

5. 開機的runbook與關機類似,只是用到的是start-AzureRMVM命令。 另外在新的AzureRM.Compute 模塊中,stop-AzureRMVM會有需要人機交互進行確認,因此需要使用 -force 強制執行,這個小tip可以使用在任何其他的類似的powershell命令中。



其實這里涉及到了一些其他的知識點,有一些我會在其他的小貼士中詳細介紹。但是如果你只是想單純的讓這個功能跑起來,其實還是非常容易的。


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

一般來說IT知識的掌握分為四個階段: User-->Know what--->troubleshooting--->Expert。 如果是技術相關崗位,至少也要在自己的專業領域達到Troubleshooting或者expert級別,而對其他的至少要做到know what。這里又涉及到了知識體系的搭建,在之后我也會分享一些相關的體會。

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


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宣汉县| 女性| 崇左市| 大渡口区| 鹰潭市| 湖南省| 红原县| 台南县| 富锦市| 峡江县| 陈巴尔虎旗| 麟游县| 宣汉县| 福建省| 大同县| 息烽县| 海安县| 内江市| 荃湾区| 拉孜县| 天镇县| 淮阳县| 乌拉特前旗| 南宫市| 栾川县| 苍溪县| 青川县| 临城县| 安阳县| 加查县| 永康市| 遂宁市| 眉山市| 西吉县| 柳林县| 通海县| 布拖县| 康定县| 上蔡县| 鸡东县| 高平市|