文章出處

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 命令把登錄認證信息保存到本地的文件中。以后在腳本中設置自動登錄時,只需使用這個本地文件就可以了。

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

一、使用 Login-AzureRmAccount 命令登錄

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

執行命令:Get-AzureRmResourceGroup

image

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

執行命令:Login-AzureRmAccount

通過彈出的對話框登錄:

clip_image002

登錄成功后會顯示賬戶信息:

clip_image003

然后再執行一次 Get-AzureRmResourceGroup 命令。

clip_image005

好了,之前的錯誤信息已經沒有了,輸出的結果為 Resource Group 的列表。

到這里,就已經登錄成功了。


 二、將登錄信息保存到文件中

Save-AzureRmProfile 命令能夠把當前 session 的登錄信息保存到文件中,這樣其它的 session 也可以使用這個文件進行自動登錄了。

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

myprofile.json 是一個普通的文本文件,文件中只有認證信息被加密了,其它的信息都是可讀的。

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


 三、自動登錄 Azure

通過 Select-AzureRmProfile 命令,可以從文件中載入用戶的登錄信息并且設置 Azure 的執行上下文。

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

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

clip_image006


 一個自動重啟虛擬機的例子

以下是重啟 Azure 上的一臺虛機的完整例子:

$profile = "your profile path"
$resourceGroupName = "your resource group name"
$vmName = "your vm name"
$logfile = "log file name"

# 自定義日志方法

Function LogWrite
{
    Param ([string]$logstring)

    $now = Get-Date
    $logcontent = $now.ToShortDateString() + " " + $now.ToShortTimeString() + ": " + $logstring
    
    Add-Content $logfile -value $logcontent
}

LogWrite("before Select-AzureRmProfile.")
Select-AzureRmProfile -Path $profile
LogWrite("after Select-AzureRmProfile.")

LogWrite("before Restart-AzureRmVM.")
Restart-AzureRmVM -ResourceGroupName $resourceGroupName -Name $vmName
LogWrite("after Restart-AzureRmVM.")

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


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜

    大師兄 發表在 痞客邦 留言(0) 人氣()