天天看點

使用 PowerShell 自動登入Azure

PowerShell 是管理 Azure 的最好方式之一,通過使用 PowerShell 腳本可以把很多的工作自動化。比如對于 Azure 上的虛拟機,可以設定定時關機操作,并在适當的時間把它開機,這樣就能減少虛拟機的運作時間,同時也能為節能減排做出貢獻。

PowerShell 的 Azure 子產品中為我們提供了不同的 API, 早期的 API 叫 ASM(Azure Service Manager)。随着 Azure 的發展變化,又出現了一套新的 API 叫 ARM(Azure Resource Management)。在這裡,我們僅介紹如何使用 ARM中 的 API 實作 Azure 上的自動登入并操作資源。

使用 PowerShell 自動登入 Azure 的大體思路是這樣的:首先使用登入指令在互動式界面下進行登入操作,然後使用 Save-AzureRmProfile 指令把登入認證資訊儲存到本地的檔案中。以後在腳本中設定自動登入時,隻需使用這個本地檔案就可以了。

下面來看看具體的操作過程。

在登入前需要先檢查一下目前的登入狀态,可以通過查詢 resource group 來進行間接檢查。

執行指令:Get-AzureRmResourceGroup

使用 PowerShell 自動登入Azure

如果目前沒有登入,則會查詢失敗并提示我們需要登入。

執行指令:Login-AzureRmAccount

通過彈出的對話框登入:

使用 PowerShell 自動登入Azure

登入成功後會顯示賬戶資訊:

使用 PowerShell 自動登入Azure

然後再執行一次 Get-AzureRmResourceGroup 指令。

使用 PowerShell 自動登入Azure

好了,之前的錯誤資訊已經沒有了,輸出的結果為 Resource Group 的清單。

到這裡,就已經登入成功了。

Save-AzureRmProfile 指令能夠把目前 session 的登入資訊儲存到檔案中,這樣其它的 session 也可以使用這個檔案進行自動登入了。

執行指令:Save-AzureRmProfile -Path “d:\test\myprofile.json”

myprofile.json 是一個普通的文本檔案,檔案中隻有認證資訊被加密了,其它的資訊都是可讀的。

注意,一定要保護好生成的 myprofile.json 檔案,如果洩露出去和别人拿到你的賬戶密碼是一樣的。

通過 Select-AzureRmProfile 指令,可以從檔案中載入使用者的登入資訊并且設定 Azure 的執行上下文。

執行指令:Select-AzureRmProfile –Path “d:\test\myprofile.json”

其執行結果和運作 Login-AzureRmAccount 指令是一樣的:

使用 PowerShell 自動登入Azure

以下是重新開機 Azure 上的一台虛機的完整例子:

# 自定義日志方法

好了,一個簡單的自動化重新開機工作就完成了!

繼續閱讀