Упражнение. Интерактивное создание ресурса Azure с помощью Azure PowerShell
В исходном сценарии необходимо создать виртуальные машины (виртуальные машины) для тестирования программного обеспечения управления отношениями клиентов (CRM). Когда новая сборка доступна, необходимо развернуть новую виртуальную машину для тестирования всего процесса установки из чистого образа. После завершения тестирования можно удалить виртуальную машину.
Давайте попробуем создать виртуальную машину.
Замечание
Это упражнение является необязательным. Если вы хотите выполнить это упражнение, перед началом работы необходимо создать подписку Azure. Если у вас нет учетной записи Azure или вы не хотите создавать ее в данный момент, вы можете ознакомиться с инструкциями, чтобы понять информацию, представленную.
Замечание
Чтобы выполнить действия, описанные в этом упражнении, необходимо использовать группу ресурсов. Вы можете использовать уже созданную группу ресурсов или создать новую группу ресурсов специально для этого упражнения. Если вы решили создать новую группу ресурсов, это позволит упростить очистку всех ресурсов, создаваемых при выполнении упражнения. Если у вас нет существующей группы ресурсов или вы хотите создать новую специально для этого упражнения, выполните действия, описанные в статье "Использование портала Azure и Azure Resource Manager для управления группами ресурсов для создания группы ресурсов с помощью портала Azure", или выполните действия, описанные в статье "Управление группами ресурсов Azure" с помощью Azure CLI для создания группы ресурсов с помощью Azure CLI .
Создание виртуальной машины Linux с помощью Azure PowerShell
Вот как создать новую виртуальную машину Azure с помощью Azure PowerShell:
Используйте командлет для создания виртуальной
New-AzVMмашины.- Укажите группу ресурсов для виртуальной машины.
- Назовите виртуальную машину, следуя стандартам именования вашей организации.
- Выберите расположение, близкое к вам из списка доступных регионов Azure.
- Используйте образ Ubuntu Linux:
Canonical:0001-com-ubuntu-server-jammy:22_04-lts:latest -
Get-CredentialИспользуйте командлет, чтобы задать учетные данные администратора виртуальной машины. - Добавьте параметр OpenPorts с портом
22для доступа к SSH. - Создайте имя общедоступного IP-адреса для входа в SSH.
$azVmParams = @{ ResourceGroupName = 'myResourceGroupName' 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Замените myResourceGroupName в предыдущем примере именем существующей группы ресурсов или именем группы ресурсов, созданной для этого упражнения.
Совет
С помощью кнопки "Копировать " можно скопировать команды в буфер обмена. Чтобы вставить, щелкните правой кнопкой мыши новую строку в терминале Cloud Shell и выберите " Вставить" или используйте сочетание клавиш SHIFT+Insert ("+V в macOS").
Введите учетные данные:
При появлении запроса введите имя пользователя и пароль, следуя рекомендациям: пароли должны иметь длину 12–123 символов и соответствовать трем из следующих четырех требований сложности: строчные символы, прописные символы, цифры и специальные символы (regex match [\W_]). Дополнительные сведения см. в разделе часто задаваемые вопросы о виртуальной машине Linux.
Дождитесь создания виртуальной машины:
Процесс создания виртуальной машины занимает несколько минут.
Запросите виртуальную машину:
По завершении выполните запрос виртуальной машины и назначьте объект виртуальной машины переменной (
$vm).$vm = Get-AzVM -Name testvm-eus-01 -ResourceGroupName myResourceGroupNameПросмотр сведений о виртуальной машине:
Чтобы просмотреть сведения о виртуальной машине, отобразите содержимое переменной.
$vmПример результата:
ResourceGroupName : myResourceGroupName Id : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myResourceGroupName/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 myResourceGroupName -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 myResourceGroupName testvm-eus-01 Microsoft.Network/virtualNetworks myResourceGroupName testvm-eus-01 Microsoft.Network/publicIPAddresses myResourceGroupName testvm-eus-01 Microsoft.Network/networkSecurityGroups myResourceGroupName testvm-eus-01 Microsoft.Network/networkInterfaces myResourceGroupName testvm-eus-01_OsDisk_1 Microsoft.Compute/disks myResourceGroupNameКоманда
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.