如何在 Azure Lab Services 中批次啟動與停止實驗室中所有虛擬機器 (VMs)

栏目: 编程工具 · 发布时间: 5年前

内容简介:最近因為企業內訓的授課需求,需要在 Azure 上建立 20 台客製化環境的虛擬機器(VMs),這個時候正是使用 Azure Lab Services 的最佳時機 (以前的名稱叫做 Azure DevTest Labs 實驗室服務)。由於透過 Azure Lab Services 建立的 VMs 可以設定每天定時自動關機、自動開機,用以節省 Azure 的花費,這是一個非常貼心的設計。不過,客戶這邊的課程並不是每天上課,而是每周上課一次,這個設定就不太好用了。本篇文章我來分享剛寫好的兩份 Azure Po

最近因為企業內訓的授課需求,需要在 Azure 上建立 20 台客製化環境的虛擬機器(VMs),這個時候正是使用 Azure Lab Services 的最佳時機 (以前的名稱叫做 Azure DevTest Labs 實驗室服務)。由於透過 Azure Lab Services 建立的 VMs 可以設定每天定時自動關機、自動開機,用以節省 Azure 的花費,這是一個非常貼心的設計。不過,客戶這邊的課程並不是每天上課,而是每周上課一次,這個設定就不太好用了。本篇文章我來分享剛寫好的兩份 Azure PowerShell 指令檔,方便日後批次啟動或停止這些實驗室中的虛擬機器。

批次啟動特定 Lab 下所有 VMs

# 批次啟動特定 Lab 下所有 VMs

# 使用前請先變更以下參數:
$subscriptionId = "<請輸入訂用帳戶名稱ID>"
$labResourceGroup = "<請輸入資源群組名稱>"
$labName = "<請輸入Lab的資源名稱>"

# 第一次執行時,才需要執行登入動作
Connect-AzureRmAccount

# 選取訂用帳戶
Select-AzureRmSubscription -SubscriptionId $subscriptionId

# 取得這個 Lab 的資源物件
$lab = Get-AzureRmResource -ResourceId ('subscriptions/' + $subscriptionId + '/resourceGroups/' + $labResourceGroup + '/providers/Microsoft.DevTestLab/labs/' + $labName)

# 取得這個 Lab 下的所有 VMs
$labVMs = Get-AzureRmResource | Where-Object {
          $_.ResourceType -eq 'microsoft.devtestlab/labs/virtualmachines' -and
          $_.Name -like "$($lab.Name)/*"}

# 啟動所有 VMs
foreach($labVM in $labVMs)
{
    Invoke-AzureRmResourceAction -ResourceId $labVM.ResourceId -Action Start -Force
}

批次停止特定 Lab 下所有 VMs

# 批次停止特定 Lab 下所有 VMs

# 使用前請先變更以下參數:
$subscriptionId = "<請輸入訂用帳戶名稱ID>"
$labResourceGroup = "<請輸入資源群組名稱>"
$labName = "<請輸入Lab的資源名稱>"

# 第一次執行時,才需要執行登入動作
Connect-AzureRmAccount

# 選取訂用帳戶
Select-AzureRmSubscription -SubscriptionId $subscriptionId

# 取得這個 Lab 的資源物件
$lab = Get-AzureRmResource -ResourceId ('subscriptions/' + $subscriptionId + '/resourceGroups/' + $labResourceGroup + '/providers/Microsoft.DevTestLab/labs/' + $labName)

# 取得這個 Lab 下的所有 VMs
$labVMs = Get-AzureRmResource | Where-Object {
          $_.ResourceType -eq 'microsoft.devtestlab/labs/virtualmachines' -and
          $_.Name -like "$($lab.Name)/*"}

# 啟動所有 VMs
foreach($labVM in $labVMs)
{
    Invoke-AzureRmResourceAction -ResourceId $labVM.ResourceId -Action Stop -Force
}

批次刪除特定 Lab 下所有 VMs

# 批次刪除特定 Lab 下所有 VMs

# 使用前請先變更以下參數:
$subscriptionId = "<請輸入訂用帳戶名稱ID>"
$labResourceGroup = "<請輸入資源群組名稱>"
$labName = "<請輸入Lab的資源名稱>"

# 第一次執行時,才需要執行登入動作
Connect-AzureRmAccount

# 選取訂用帳戶
Select-AzureRmSubscription -SubscriptionId $subscriptionId

# 取得這個 Lab 的資源物件
$lab = Get-AzureRmResource -ResourceId ('subscriptions/' + $subscriptionId + '/resourceGroups/' + $labResourceGroup + '/providers/Microsoft.DevTestLab/labs/' + $labName)

# 取得這個 Lab 下的所有 VMs
$labVMs = Get-AzureRmResource | Where-Object {
          $_.ResourceType -eq 'microsoft.devtestlab/labs/virtualmachines' -and
          $_.Name -like "$($lab.Name)/*"}

# 啟動所有 VMs
foreach($labVM in $labVMs)
{
    Remove-AzureRmResource -ResourceId $labVM.ResourceId -Force
}

相關連結


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

程序是怎样跑起来的

程序是怎样跑起来的

[日] 矢泽久雄 / 李逢俊 / 人民邮电出版社 / 2015-4 / 39.00元

本书从计算机的内部结构开始讲起,以图配文的形式详细讲解了二进制、内存、数据压缩、源文件和可执行文件、操作系统和应用程序的关系、汇编语言、硬件控制方法等内容,目的是让读者了解从用户双击程序图标到程序开始运行之间到底发生了什么。同时专设了“如果是你,你会怎样介绍?”专栏,以小学生、老奶奶为对象讲解程序的运行原理,颇为有趣。本书图文并茂,通俗易懂,非常适合计算机爱好者及相关从业人员阅读。一起来看看 《程序是怎样跑起来的》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换