Microsoft Azure — изменение размера виртуальной машины с помощью скрипта PowerShell

Опубликовано: 7 Сентября, 2022

В этой статье мы рассмотрим процесс мгновенного изменения размера виртуальных машин Azure с помощью сценария автоматизации Azure PowerShell на портале Azure с помощью облачной оболочки.

Преимущества использования методического подхода:

  • Изменение размера нескольких виртуальных машин одновременно в подписке на выбор
  • Экономит время Пользователя
  • Упрощение действий за счет автоматизации процесса
  • Повторно используемый скрипт

Реализация:

Шаг 1. Войдите на портал Azure.

Шаг 2. Откройте Cloud Shell и выберите PowerShell

Шаг 3: Создайте папку с именем «Автоматизация».

mkdir Automation

Шаг 4: Изменить каталог

cd ./Automation/

Шаг 5: Создайте файл «test-resize.ps1»

touch test-resize.ps1

Шаг 6. Сценарий Azure PowerShell

  • Измените следующие две строки в приведенном ниже коде:
  1. Номер строки 3 >> $VMsList = @("TestVM", "TestVM2″",TestVM3",…) # Предоставьте свой список виртуальных машин, размер которого необходимо изменить.
  2. Номер строки 4 >> $NewAzureSize = «Standard_B2s» # Укажите новый размер виртуальной машины Azure.
  • Затем вставьте код в файл test-resize.ps1 , сохраните и закройте.
$AzVMs = Get-AzureRmVM | Select-Object -Property Name, ResourceGroupName, Location, Type, ProvisioningState

$VMsList = @("TestVM", "TestVM2", "TestVM3") #Provide your VM List that need to be Resized
$NewAzureSize = "Standard_B2s" #Provide your New Azure VM Size

foreach ($VM in $AzVMs)
{
   $VMName = $VM.Name
   $ResourceGroupName = $VM.ResourceGroupName
   $Type = $VM.Type
   $Location = $VM.Location
   $ProvisioningState = $VM.ProvisioningState

    if ($VMsList -contains $VMName)
    {
        Write-Host "--------------------------------------------------------------------"
        Write-Host "Virtual Machine: $VMName"
        Write-Host "ResourceGroup  : $ResourceGroupName"
        Write-Host "Location   : $Location"
        Write-Host "ResourceType   : $Type"
        Write-Host "ProvisioningState   : $ProvisioningState"    
        Write-Host "--------------------------------------------------------------------"
        Write-Host "Deallocating $VMName VM."
        Stop-AzVM -ResourceGroupName $ResourceGroupName -Name $VMName -Force
        Write-Host "$VMName VM Stopped."
        Write-Host "--------------------------------------------------------------------"
        Write-Host "Updating $VMName VMSize."
        $vm = Get-AzVM -ResourceGroupName $ResourceGroupName -VMName $VMName
        $vm.HardwareProfile.VmSize = $AzureSize
        Update-AzVM -VM $vm -ResourceGroupName $ResourceGroupName
        Write-Host "Successfully resized $VMName VM to size $NewAzureSize."
        Write-Host "--------------------------------------------------------------------"
        Write-Host "Starting $VMName VM"
        Start-AzVM -ResourceGroupName $ResourceGroupName -Name $VMName
        Write-Host "$VMName VM Started."
        Write-Host "--------------------------------------------------------------------"
    }
}  

Шаг 7: Теперь пришло время запустить код. Используйте следующий синтаксис для выполнения сценария Azure PowerShell для изменения размера.

./test-resize.ps1

Шаг 8. Вывод для всех перечисленных ВМ в Script выглядит следующим образом. Вот и все.

На данный момент нам удалось изменить размер нашей виртуальной машины Azure с помощью сценария Powershell.