今天來討論下Azure automation的其他應(yīng)用方式,對于云管理人員來說,肯定是非常希望對云中的資產(chǎn)情況有一個全面的了解的,對于這種需求,Azure Portal其實不失為一個不錯的選擇,然而,很多情況下,Portal了解的信息往往沒有那么全面,而且效率非常低
成都創(chuàng)新互聯(lián)專注于網(wǎng)站建設(shè)|成都網(wǎng)站維護(hù)公司|優(yōu)化|托管以及網(wǎng)絡(luò)推廣,積累了大量的網(wǎng)站設(shè)計與制作經(jīng)驗,為許多企業(yè)提供了網(wǎng)站定制設(shè)計服務(wù),案例作品覆蓋搬家公司等行業(yè)。能根據(jù)企業(yè)所處的行業(yè)與銷售的產(chǎn)品,結(jié)合品牌形象的塑造,量身策劃品質(zhì)網(wǎng)站。
這時候,使用PowerShell進(jìn)行各種信息的統(tǒng)計就顯得更為高效了,可以使用各種腳本統(tǒng)計包括IaaS到PaaS服務(wù)的各種信息,如果想要定期的去收集這些信息,還可以結(jié)合Azure automation,定義好schedule,然后配合收集信息的腳本,即可實現(xiàn)這樣的需求
下邊來看具體如何實現(xiàn),首先在Azure中創(chuàng)建好一個automation account,這個就不演示了,之后更新好我們的module,并且導(dǎo)入好需要的module,常用的包括azurerm.storage, azurerm.network, azurerm.profile等,這部分內(nèi)容可以看下之前的博客
https://blog.51cto.com/mxyit/2348123
有了這些內(nèi)容之后,下一步要做的就是創(chuàng)建一個PowerShell的runbook了,收集信息的runbook有很多,包括網(wǎng)上的以及我自己寫的,各位可以根據(jù)需要使用,我自己寫的其實以前也介紹過很多次
使用PowerShell 獲取 Azure賬戶中的用戶權(quán)限分配情況
https://blog.51cto.com/mxyit/2347819
使用PowerShell快速獲取Azure中的SQL Server VM
https://blog.51cto.com/mxyit/2347699
如何使用PowerShell 收集Azure VM Image列表
https://blog.51cto.com/mxyit/2070613
這里我用的是一個外國友人寫的腳本,因為涵蓋的服務(wù)比較多一些
https://gallery.technet.microsoft.com/scriptcenter/Azure-Inventory-using-3db0f658?redir=0
這個腳本本身是會把信息存儲在硬盤上的,但是因為在automation中,這部分信息沒辦法持久化,所以我們可以稍作修改,分兩個層面
1. 將收集好的信息存儲為csv文件,保存在blob中
2. 將csv文件作為附件發(fā)送到郵箱中
為此,我們需要在原來的腳本基礎(chǔ)上做一些修改,添加一些內(nèi)容,以收集虛擬機(jī)信息為例,在虛擬機(jī)信息收集的腳本后添加以下內(nèi)容
#Define file name $filename="Virtual_Machine_details_"+ (Get-Date -UFormat '%Y_%m_%d')+".csv" $virtual_machine_object | Export-Csv -path $filename -NoTypeInformation -Force #Define blob info $StorageAccountName = "" $StorageAccountKey = "<************************* your storage account key*************************>" $ctx = New-AzureStorageContext -StorageAccountName $StorageAccountName -StorageAccountKey $StorageAccountKey $containername="inventory" Set-AzureStorageBlobContent -Container $ContainerName -File $filename -Blob $filename -Context $ctx -Force #send email $uname = "your email account" $pwd = ConvertTo-SecureString -String " " -AsPlainText -Force $cred = New-Object System.Management.Automation.PSCredential($uname, $pwd) Send-MailMessage -from $uname -To ' ' -Subject "Azure Environment daily check $(Get-Date -UFormat '%Y/%m/%d')" -Body $("Here's the Azure environment status today
" ) -Attachments $filename -SmtpServer '' -Credential $cred -UseSsl -BodyAsHtml
完成后,將runbook link to schedule
創(chuàng)建一個schedule
之后即可在schedule中看到了
運行后可以看到類似以下的效果,當(dāng)然,這里只是演示了獲取VM的信息,未包含腳本里的其他內(nèi)容
Blob中存儲內(nèi)容
郵件收到的內(nèi)容
這樣,每天早上來了之后就可以看到Azure的資產(chǎn)信息了!