Упражнение. Интерактивное создание ресурса Azure с помощью Azure PowerShell
В исходном сценарии необходимо создать виртуальные машины (виртуальные машины) для тестирования программного обеспечения управления отношениями клиентов (CRM). Когда новая сборка доступна, необходимо развернуть новую виртуальную машину для тестирования всего процесса установки из чистого образа. После завершения тестирования можно удалить виртуальную машину.
Давайте попробуем создать виртуальную машину.
Создание виртуальной машины Linux с помощью Azure PowerShell
Так как вы используете песочницу Azure, вам не нужно создавать группу ресурсов. Вместо этого используйте существующую группу
Вот как создать новую виртуальную машину Azure с помощью Azure PowerShell:
Используйте командлет для создания виртуальной
New-AzVM
машины.Укажите группу ресурсов песочницы: [имя группы ресурсов песочницы]
. Назовите виртуальную машину, следуя стандартам именования вашей организации.
Выберите расположение, близкое к вам из списка доступных расположений песочницы Azure.
- westus2
- southcentralus
- centralus
- eastus
- westeurope
- southeastasia
- japaneast
- brazilsouth
- australiasoutheast
- centralindia
Используйте образ Ubuntu Linux:
Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest
Get-Credential
Используйте командлет, чтобы задать учетные данные администратора виртуальной машины.Добавьте параметр OpenPorts с портом
22
для доступа к SSH.Создайте имя общедоступного IP-адреса для входа в SSH.
$azVmParams = @{ ResourceGroupName = '<rgn>[sandbox resource group name]</rgn>' Name = 'testvm-eus-01' Credential = (Get-Credential) Location = 'eastus' Image = 'Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest' OpenPorts = 22 PublicIpAddressName = 'testvm-eus-01' } New-AzVm @azVmParams
Совет
Чтобы скопировать команду в буфер обмена, нажмите кнопку Копировать. Для вставки щелкните правой кнопкой мыши новую строку в терминале Cloud Shell и выберите команду Вставить или нажмите клавиши SHIFT+INSERT (⌘+V в macOS).
Введите учетные данные:
При появлении запроса введите имя пользователя и пароль, следуя рекомендациям: пароли должны иметь длину 12–123 символов и соответствовать трем из следующих четырех требований сложности: строчные символы, прописные символы, цифры и специальные символы (regex match [\W_]). Дополнительные сведения см. в разделе часто задаваемые вопросы о виртуальной машине Linux.
Дождитесь создания виртуальной машины:
Процесс создания виртуальной машины занимает несколько минут.
Запросите виртуальную машину:
По завершении выполните запрос виртуальной машины и назначьте объект виртуальной машины переменной (
$vm
).$vm = Get-AzVM -Name testvm-eus-01 -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
Просмотр сведений о виртуальной машине:
Чтобы просмотреть сведения о виртуальной машине, отобразите содержимое переменной.
$vm
Пример результата:
ResourceGroupName : <rgn>[sandbox resource group name]</rgn> Id : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/<rgn>[sandbox resource group name]</rgn>/providers/Microsoft.Compute/virtualMachines/testvm-eus-01 VmId : 00000000-0000-0000-0000-000000000000 Name : testvm-eus-01 Type : Microsoft.Compute/virtualMachines Location : eastus Tags : {} HardwareProfile : {VmSize} NetworkProfile : {NetworkInterfaces} OSProfile : {ComputerName, AdminUsername, LinuxConfiguration, Secrets} ProvisioningState : Succeeded StorageProfile : {ImageReference, OsDisk, DataDisks} ...
Проверка свойств виртуальной машины:
Сложные объекты можно проверить с помощью оператора доступа к членам (
.
). Например, чтобы просмотреть свойства объекта, связанногоVMSize
с разделом HardwareProfile , выполните следующую команду:$vm.HardwareProfile
Или, чтобы получить сведения для одного из дисков, выполните следующую команду:
$vm.StorageProfile.OsDisk
Получение доступных размеров виртуальных машин:
Передайте объект виртуальной машины другим командлетам, чтобы получить доступные размеры:
$vm | Get-AzVMSize
Получите общедоступный IP-адрес:
Получите общедоступный IP-адрес для подключения к виртуальной машине и сохраните его в переменной.
$ip = Get-AzPublicIpAddress -ResourceGroupName <rgn>[sandbox resource group name]</rgn> -Name testvm-eus-01
Подключитесь к виртуальной машине:
Подключитесь к виртуальной машине с помощью SSH с помощью IP-адреса из переменной. Например, если имя пользователя имеется
bob
, используйте следующую команду:ssh bob@$($ip.IpAddress)
Выйдите, введя выход.
Удаление виртуальной машины
Чтобы попробовать дополнительные команды, давайте удалим виртуальную машину. Выполните следующие действия:
Завершение работы виртуальной машины:
Выполните следующую команду:
Stop-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName
Введите Y и нажмите клавишу ВВОД, когда появится запрос на продолжение.
Удалите виртуальную машину:
После остановки виртуальной
Remove-AzVM
машины удалите ее, выполнив командлет.Remove-AzVM -Name $vm.Name -ResourceGroupName $vm.ResourceGroupName
Введите Y и нажмите клавишу ВВОД, когда появится запрос на продолжение.
Список всех ресурсов в группе ресурсов:
Get-AzResource
Используйте командлет для перечисления всех ресурсов в группе ресурсов. Результаты передаются дляSelect-Object
возврата определенных свойств:Get-AzResource -ResourceGroupName $vm.ResourceGroupName | Select-Object -Property Name, ResourceType, ResourceGroupName
Вы увидите несколько ресурсов, включая диски, виртуальные сети и т. д., которые по-прежнему существуют:
Name ResourceType ResourceGroupName ---- ------------ ----------------- cloudshell Microsoft.Storage/storageAccounts <rgn>[sandbox resource group name]</rgn> testvm-eus-01 Microsoft.Network/virtualNetworks <rgn>[sandbox resource group name]</rgn> testvm-eus-01 Microsoft.Network/publicIPAddresses <rgn>[sandbox resource group name]</rgn> testvm-eus-01 Microsoft.Network/networkSecurityGroups <rgn>[sandbox resource group name]</rgn> testvm-eus-01 Microsoft.Network/networkInterfaces <rgn>[sandbox resource group name]</rgn> testvm-eus-01_OsDisk_1 Microsoft.Compute/disks <rgn>[sandbox resource group name]</rgn>
Команда
Remove-AzVM
удаляет только виртуальную машину. Она не удаляет какие-либо другие ресурсы. Чтобы вручную очистить их, выполните следующие действия.Удалим сетевой интерфейс.
Get-AzNetworkInterface -ResourceGroupName $vm.ResourceGroupName -Name $vm.Name | Remove-AzNetworkInterface
Введите Y и нажмите клавишу ВВОД, когда появится запрос на продолжение.
Удалим группу безопасности сети.
Get-AzNetworkSecurityGroup -ResourceGroupName $vm.ResourceGroupName | Remove-AzNetworkSecurityGroup
Введите Y и нажмите клавишу ВВОД, когда появится запрос на продолжение.
Удалите общедоступный IP-адрес:
Get-AzPublicIpAddress -ResourceGroupName $vm.ResourceGroupName | Remove-AzPublicIpAddress
Введите Y и нажмите клавишу ВВОД, когда появится запрос на продолжение.
Удаление виртуальной сети:
Get-AzVirtualNetwork -ResourceGroupName $vm.ResourceGroupName | Remove-AzVirtualNetwork
Введите Y и нажмите клавишу ВВОД, когда появится запрос на продолжение.
Удалите управляемые диски ОС:
Get-AzDisk -ResourceGroupName $vm.ResourceGroupName -DiskName $vm.StorageProfile.OSDisk.Name | Remove-AzDisk
Введите Y и нажмите клавишу ВВОД, когда появится запрос на продолжение.
Убедитесь, что все ресурсы удалены:
Проверьте группу ресурсов, чтобы убедиться, что все ресурсы удалены:
Get-AzResource -ResourceGroupName $vm.ResourceGroupName | Select-Object -Property Name, ResourceType, ResourceGroupName
При интерактивном выполнении этих команд лучше всего создать скрипт PowerShell. Скрипты позволяют повторно использовать логику для создания или удаления виртуальной машины в будущем
Далее давайте рассмотрим, как автоматизировать эти задачи с помощью скрипта PowerShell.