Windows Azure PowerShell для работы с IaaS

от автора

Введение

Еще в июне 2012 был обновлен Windows Azure PowerShell командлеты и к нему добавились некоторые интересные функциональные возможности для управления виртуальными машинами Windows Azure. В этой статье я расскажу о некоторых из новых функций по автоматизации Windows Azure IaaS.

Конфигурирование Windows Azure PowerShell

Первое, что необходимо сделать – установить Windows Azure PowerShell. Самый простой способ для того чтобы загрузить и импортировать файл-настроек – скачать шаблон с официального сайта. После того как файл-настроек публикации загружен, его необходимо импортировать:

 Import-AzurePublishSettingsFile 'c:\temp\mysub.publishsettings' 

Также имеется возможность настройки профиля публикации в ручную, без скачивания файла-настроек:

$subid = '[YOUR-SUBSCRIPTION-ID]' $cert = Get-Item Cert:\CurrentUser\My\YOURCERTTHUMBPRINT Set-AzureSubscription -SubscriptionName 'testsub1' -SubscriptionId $subid -Certificate $cert 

Обратите внимание, что после того, как с настройками подписки закончено – профиль публикации сохраняется по умолчанию в следующем месте: C:\Users\user\AppData\Roaming\Windows Azure Powershell
Это означает, что не нужно запускать Set-AzureSubscription для каждого из сценариев, так как он уже есть. Windows Azure PowerShell поддерживают несколько подписок, поэтому здесь можно выбрать с какой подпиской работать, командой — Select-AzureSubscription.

Настройка хранилища

image
Также, новым дополнением является –CurrentStorageAccount. Этот параметр позволяет указать какое хранилище использовать для ваших VM’s в работе из PowerShell. Чтобы установить хранилище необходимо выполнить следующую команду:

Get-AzureStorageAccount  

Если необходимо создать StorageAccount, воспользуйтесь следующей командой:

New-AzureStorageAccount -StorageAccountName 'myuniquelynamedstorage' -Location 'East US'
Подготовка к созданию виртуальной машины из PowerShell

image
Перед тем как приступить к созданию VM’s в Windows Azure необходимо задать некоторые настройки, которые потребуются для работы из PowerShell, а именно, локация:

  $dclocation = '[YOUR-LOCATION]' 

Задать имя облачного сервиса, который будет выступать в качестве контейнера для VM’S:

Test-AzureName -Service '[YOUR-CLOUD-SERVICE-NAME]' $cloudSvcName = '[YOUR-CLOUD-SERVICE-NAME]'

Определить какая платформа будет использоваться в качестве основы для VM’s:

Get-AzureVMImage | select ImageName $image = '[YOUR-SELECTED-IMAGE-NAME]'

Теперь же можно приступать к созданию VM’s из PowerShell.

Быстрое создание Windows VM’s из PowerShell

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

$adminPassword = '[PASSWORD]' $vmname = 'mytestvm' New-AzureQuickVM -Windows -ServiceName $cloudSvcName -Name $vmname -ImageName $image -Password $adminPassword  
Быстрое создание Linux VM’s из PowerShell

 $linuxuser = '[CHOOSE-USERNAME]' $adminPassword = '[YOUR-PASSWORD]' $vmname = 'mytestvm1' New-AzureQuickVM -Linux -ServiceName $cloudSvcName -Name $vmname -ImageName $image -LinuxUser $linuxuser  
Перезагрузка, запуск и остановка Windows Azure виртуальной машины

 # Перезагрузка Restart-AzureVM -ServiceName $cloudSvcName -Name $vmname  # Остановка  Stop-AzureVM -ServiceName $cloudSvcName -Name $vmname  # Старт Start-AzureVM -ServiceName $cloudSvcName -Name $vmname 
Расширенные команды для создания виртуальных машин

New-AzureVMConfig позволяет создать виртуальную машину, сконфигурировав под себя. Если вас не устраивает быстрое создание VM’s или же не нравится то кол-во настроек которое эта команда предоставляет, то этот раздел именно для вас. Вы можете добавлять диск с данными, настраивать конечные точки (автоматически добавляются для SSH и RDP) и даже изменять поведение дискового кэша ОС или же диска с данными. Все что для этого потребуется – это вызвать команду New-AzureVMConfig, а затем передать их VM’s.

Создание Windows виртуальных машин из PowerShell

$vmname2 = 'mytestvm2' $vmname3 = 'mytestvm3'  $vm2 = New-AzureVMConfig -Name $vmname2 -InstanceSize ExtraSmall -ImageName $image |           Add-AzureProvisioningConfig -Windows -Password $adminPassword |           Add-AzureDataDisk -CreateNew -DiskSizeInGB 50 -DiskLabel 'datadisk1' -LUN 0 |           Add-AzureEndpoint -Protocol tcp -LocalPort 80 -PublicPort 80 -Name 'web' `               -LBSetName 'lbweb' -ProbePort 80 -ProbeProtocol http -ProbePath '/'   $vm3 = New-AzureVMConfig -Name $vmname3 -InstanceSize ExtraSmall -ImageName $image |        Add-AzureProvisioningConfig -Windows -Password $adminPassword  |         Add-AzureDataDisk -CreateNew -DiskSizeInGB 50 -DiskLabel 'datadisk2' -LUN 0  |         Add-AzureEndpoint -Protocol tcp -LocalPort 80 -PublicPort 80 -Name 'web' `               -LBSetName 'lbweb' -ProbePort 80 -ProbeProtocol http -ProbePath '/'   New-AzureVM -ServiceName $cloudSvcName -VMs $vm2,$vm3
Создание Linux виртуальной машины из PowerShell

$vmname2 = 'mytestvm2' $vmname3 = 'mytestvm3'  $vm2 = New-AzureVMConfig -Name $vmname2 -InstanceSize ExtraSmall -ImageName $image |        Add-AzureProvisioningConfig -Linux -LinuxUser $linuxUser -Password $adminPassword |        Add-AzureDataDisk -CreateNew -DiskSizeInGB 50 -DiskLabel 'datadisk1' -LUN 0 |         Add-AzureEndpoint -Protocol tcp -LocalPort 80 -PublicPort 80 -Name 'web' `               -LBSetName 'lbweb' -ProbePort 80 -ProbeProtocol http -ProbePath '/'   $vm3 = New-AzureVMConfig -Name $vmname3 -InstanceSize ExtraSmall -ImageName $image |          Add-AzureProvisioningConfig -Linux -LinuxUser $linuxUser -Password $adminPassword |          Add-AzureDataDisk -CreateNew -DiskSizeInGB 50 -DiskLabel 'datadisk2' -LUN 0 |          Add-AzureEndpoint -Protocol tcp -LocalPort 80 -PublicPort 80 -Name 'web' `              -LBSetName 'lbweb' -ProbePort 80 -ProbeProtocol http -ProbePath '/'  New-AzureVM -ServiceName $cloudSvcName -VMs $vm2,$vm3
Обновление существующих виртуальных машин

Изменение существующих виртуальных машин требует получения текущих настроек используя команду Get-AzureVM, после редактирования для сохранения настроек используется команда Update-AzureVM. Некоторые из изменений потребуют перезагрузки виртуальной машины, к примеру параметры дискового кэша.

 $vmname = 'mytestvm1' Get-AzureVM -Name $vmname -ServiceName $cloudSvcName |     Add-AzureDataDisk -CreateNew -DiskSizeInGB 50 -DiskLabel 'datadisk1' -LUN 0 |     Add-AzureDataDisk -CreateNew -DiskSizeInGB 50 -DiskLabel 'translogs1' -LUN 1 |     Add-AzureEndpoint -Protocol tcp -LocalPort 1433 -PublicPort 2000 -Name 'sql' |     Update-AzureVM  
Заключение

В этом топике я рассмотрел основные команды для работы с виртуальными машинами из PowerShell, которые помогут новичкам в управлении виртуальными машинами в Azure.

ссылка на оригинал статьи http://habrahabr.ru/post/156441/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *