去年年末Azure中國的Automation Account悄悄作了升級。新版本無論從功能仍是end user experience方面都讓人耳目一新。若是說升級前只是一個運行腳本的小工具,升級後的Azure自動化帳號則提供用戶對Azure環境和非Azure環境的現代化的自動運維服務。簡單來說,若是用戶須要:python
(Last but not the least,用戶只需爲腳本運行的時間付費,一分鐘才一分錢哦)shell
能知足以上需求的服務就是Azure自動化帳號。接下來咱們詳細講講如何使用而且用好這個服務。安全
建立Automation Account服務器
首先咱們打開portal.azure.cn, 建立「自動化」,app
在建立Azure運行方式帳戶這一欄,請點擊「是」。緣由咱們會在下文作詳細解釋運維
建立的過程當中,右上角會顯示工具
最後一個「Creating Azure …」可能會持續很長時間一直顯示建立中。這時能夠回到資源組,會看到實際上建立已經完成了。雲計算
acpoctest是在上一步中建立的automation account,其餘幾個資源是acpoctest這個自動化帳號相關聯的Runbook,分別是Azure給出的在automation account中運行圖形runbook,powershell runbook,python runbook以及管理Azure Classic Resource(ASM)的Runbook範例。全部開發運維的腳本在自動化帳號裏都是以Runbook的形式存在。spa
先打開AzureAutomationlTurtorialScript這個Runbook,試試看能不能讀懂這個腳本完成什麼任務。3d
根據註釋,這個腳本用來獲取當前Azure環境裏全部ARM resource的信息。Powershell腳本首先用「Get-AutomationConnection」命令取得一個類型爲「connection」名爲「AzureRunAsConnection「的對象值。該值包含有以下信息:
以後,腳本用以上信息登陸Azure 並執行命令 Get-AzureRmResourceGroup 和Find-AzureRmResource取得全部的ARM資源。
那麼,接下來的問題是AzureRunAsConnection這個對象值是從哪裏來的,登陸Azure運行腳本的用戶帳號究竟是哪個呢?不要着急,咱們先回到最初建立的自動化帳戶acpoctest。
左邊的菜單欄有個選項「鏈接」,點進去看看
其中有一個就是咱們剛剛分析的Runbook「AzureAutomationlTurtorialScript「中存儲Azure帳號登陸信息的「AzureRunAsConnection」,點進去看一下
說明寫着,這個connection包含了在自動化帳號建立時候自動建立的與之相關的service principle,certificate,同時還link了相關的SubscriptionId和TenantId.
接着再看一下左邊菜單欄的證書選項,能夠看到和connection對應的兩個也是自動化帳號建立時候自動生成的證書。
最後咱們下拉左邊菜單,選擇Run As Accounts並點擊「Azure Run As Account」
還記得開始建立自動化帳號的時候建議「在建立Azure運行方式帳戶這一欄,請點擊「是」」嗎?
從上文的截圖和範例代碼咱們能夠猜到,在用戶選擇這個選項後,Azure作了什麼。
對於Run As account ,Azure
對於Classic Run As account, Azure則上傳管理證書certificate
以上全部的工做都由Azure自動完成,最終實現的是腳本運行(Runbook)時候Azure環境的獨立鑑權。這個帳號爲acpoctest這個自動化帳號獨有,和任何我的帳號沒有關係,公司人員變更,硬件改動(電腦更替)並不會影響到腳本運維,一樣IT也無需花費額外時間來建立和管理相關的證書。
總結一下,用戶看到的一個小小的選項都是一個技術改進,在傳統運維開發中消耗大量人力和物力的工做都轉由雲平臺完成。
這纔是雲計算的真正魅力所在,用戶的focus再也不是重複性勞動,而是真正的業務
2018/1/30: 補充一下細節,建立RunAsAccount的時候在AAD自動建立了一個Service Principal。這意味着訂閱的新建立的contributor這個user在AAD註冊了一個app而後才能申請ServicePrinciple和證書,因此呢,AAD的配置裏須要支持AAD的user能夠register APP。有點繞哦,咱們仍是看圖