1. 程式人生 > >新版Azure Automation Account 淺析(一) --- 創建和Run As Account

新版Azure Automation Account 淺析(一) --- 創建和Run As Account

window service power 工程師 fin subscript 相關 人員 服務

去年年底Azure中國的Automation Account悄悄做了升級。新版本不管從功能還是end user experience方面都讓人耳目一新。如果說升級前只是一個運行腳本的小工具,升級後的Azure自動化賬號則提供用戶對Azure環境和非Azure環境的現代化的自動運維服務。簡單來講,如果用戶需要:

  • 提高效率,節約成本,實施開發運維自動化
  • 實現自動化配置管理,資產管理,變化跟蹤管理
  • 同時管理Windows和Linux
  • 管理Azure,AWS,OnPrem以及任何集成Powershell或者Python的服務和產品
  • 和全世界優秀的工程師一起工作,重用他們已經交付使用的代碼
  • 開發運維代碼所需的全局變量,密碼,證書,調度和安全監管
  • 開發運維代碼和主流版本管理軟件集成,自動同步
  • …..
  • 無服務器化的輕量級管理平臺

(Last but not the least,用戶只需為腳本運行的時間付費,一分鐘才一分錢哦)

能滿足以上需求的服務就是Azure自動化賬號。接下來我們詳細講講如何使用並且用好這個服務。

創建Automation Account

首先我們打開portal.azure.cn, 創建“自動化”,

在創建Azure運行方式賬戶這一欄,請點擊“是”。原因我們會在下文做詳細解釋

技術分享圖片

創建的過程中,右上角會顯示

技術分享圖片

最後一個“Creating Azure …”可能會持續很長時間一直顯示創建中。這時可以回到資源組,會看到實際上創建已經完成了。

技術分享圖片技術分享圖片

acpoctest是在上一步中創建的automation account,其他幾個資源是acpoctest這個自動化賬號相關聯的Runbook,分別是Azure給出的在automation account中運行圖形runbook,powershell runbook,python runbook以及管理Azure Classic Resource(ASM)的Runbook範例。所有開發運維的腳本在自動化賬號裏都是以Runbook的形式存在。

先打開AzureAutomationlTurtorialScript這個Runbook,試試看能不能讀懂這個腳本完成什麽任務。

技術分享圖片

根據註釋,這個腳本用來獲取當前Azure環境裏所有ARM resource的信息。Powershell腳本首先用“Get-AutomationConnection”命令取得一個類型為“connection”名為“AzureRunAsConnection“的對象值。該值包含有如下信息:

  • TenantId
  • ApplicationId
  • CertificateThumbprint

之後,腳本用以上信息登錄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

  • 為自動化賬號創建了一個訂閱的contributor
  • 在Azure AD創建了一個Service Principal
  • 創建了一個證書certificate

對於Classic Run As account, Azure則上傳管理證書certificate

以上所有的工作都由Azure自動完成,最終實現的是腳本運行(Runbook)時候Azure環境的獨立鑒權。這個賬號為acpoctest這個自動化賬號獨有,和任何個人賬號沒有關系,公司人員變動,硬件改動(電腦更替)並不會影響到腳本運維,同樣IT也無需花費額外時間來創建和管理相關的證書。

總結一下,用戶看到的一個小小的選項都是一個技術改進,在傳統運維開發中消耗大量人力和物力的工作都轉由雲平臺完成。

這才是雲計算的真正魅力所在,用戶的focus不再是重復性勞動,而是真正的業務

新版Azure Automation Account 淺析(一) --- 創建和Run As Account