Доступ к Azure из PowerShell: все, что вам нужно знать

Опубликовано: 5 Марта, 2023
Доступ к Azure из PowerShell: все, что вам нужно знать

Microsoft уже давно заявляет, что ее предпочтительным инструментом для управления Windows Server является PowerShell. Поэтому неудивительно, что Microsoft предоставляет способ подключения к Azure через PowerShell. Это позволяет администраторам управлять ресурсами Azure с помощью того же инструмента управления, который используется для управления локальными ресурсами. Это особенно полезно для тех, кому необходимо создавать сценарии массовых операций управления, таких как создание нескольких виртуальных машин Azure.

Первым шагом для доступа к Azure через PowerShell является загрузка Microsoft Azure PowerShell. Также можно установить пакет напрямую через PowerShell. Для этого откройте сеанс PowerShell с повышенными привилегиями и введите следующие команды:

Установочный модуль AzureRM
Логин-AzureRMAccount

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

Изображение 591
PowerShell подключен к подписке Azure.

Прежде чем я продолжу, я должен указать, что у Azure есть что-то вроде раздвоения личности. На данный момент Microsoft предоставляет «новый» портал Azure и классический портал Azure. Важно понимать, что эти два портала — это не просто два разных графических интерфейса для Azure. На самом деле они связаны с двумя разными средами. Виртуальная машина, созданная на классическом портале, не будет отображаться на новом портале Azure, и наоборот.

Имея это в виду, еще раз взгляните на команды, которые мы использовали для подключения к Azure. Мы установили модуль под названием AzureRM. Модуль не назывался Azure. Точно так же команда входа ссылается на AzureRMAccount, а не на учетную запись Azure. Причина этого в том, что эти команды нацелены на новый портал Azure. Если вместо этого вам нужно подключить PowerShell к классическому порталу Azure, используйте следующие команды:

Установочный модуль Azure
Add-AzureAccount

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

Итак, первое, что я рекомендую сделать, если вы еще не подключались к Azure из PowerShell, — это взглянуть на некоторые из доступных вам командлетов. Чтобы просмотреть полный список командлетов, включенных в модуль AzureRM, введите следующую команду:

Get-Command — модуль AzureRM

Типы информации, которую возвращает эта команда, показаны на рисунке ниже. Имейте в виду, что на рисунке показана лишь небольшая часть доступных командлетов. Список командлетов в модуле AzureRM на самом деле довольно длинный.

Изображение 592
Список командлетов, включенных в модуль AzureRM.

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

Если вы посмотрите на рисунок ниже, вы увидите, что в настоящее время у меня есть три виртуальных машины Azure.

Изображение 593
Список виртуальных машин Azure.

Если вы хотите увидеть ту же информацию в PowerShell, вы можете просто ввести командлет Get-AzureRMVM. Еще раз, не забудьте включить RM в команду. Вы можете увидеть результат ниже:

Изображение 594
Виртуальные машины Azure, отображаемые через PowerShell.

Конечно, виртуальная машина — это гораздо больше, чем информация, показанная на снимке экрана выше. Так что, если мы хотим копнуть немного глубже? Давайте подробнее рассмотрим виртуальную машину с именем DemoVM. Для этого я бы ввел следующую команду:

Get-AzureRMVM DemoVM -ResourceGroup DEFAULT-STORAGE-EASTUS -Name DemoVM

Вот как выглядит результат:

Изображение 595
Подробная информация о выбранной ВМ.

Как видите, получение информации, связанной с виртуальной машиной Azure, работает немного иначе, чем получение информации о виртуальной машине Hyper-V. В среде Hyper-V вы можете просто ввести командлет Get-VM, а затем имя виртуальной машины. Однако если виртуальная машина находится в Azure, вам потребуется указать как имя виртуальной машины, так и имя группы ресурсов.

Ранее я показал вам, как просмотреть полный список всех командлетов в модуле AzureRM. Но что, если вы хотите видеть только командлеты, связанные с виртуальными машинами Azure? Вы можете сузить список с помощью этой команды:

Get-Command -Module AzureRM *-AzureRMVM

Как видно на рисунке ниже, с AzureRMVM связано всего восемь командлетов. Эти командлеты можно использовать для просмотра, создания, удаления, запуска, остановки, перезапуска и обновления виртуальных машин Azure.

Изображение 596
Командлеты AzureRMVM.

Если бы, например, я хотел запустить DemoVM, я мог бы сделать это, введя следующую команду:

Start-AzureRMVM -ResourceGroup DEFAULT-STORAGE-EASTUS -Name DemoVM

Вот что происходит, когда я запускаю команду:

Изображение 597
Запуск виртуальной машины Azure из PowerShell.

Я могу так же легко остановить виртуальную машину, введя эту команду:

Stop-AzureRMVM -ResourceGroup DEFAULT-STORAGE-EASTUS -Name DemoVM

Некоторые предостережения

Как видите, Microsoft упрощает подключение PowerShell к Azure. На самом деле, для установления соединения требуется всего две команды. Тем не менее, использование PowerShell для управления Azure требует некоторого привыкания. Многие знакомые командлеты PowerShell не работают в Azure. Во многих случаях корпорация Майкрософт создавала специальные версии этих командлетов для Azure с именами, несколько похожими на имена командлетов PowerShell, которые используются для выполнения аналогичных функций в локальной среде. Однако часто оказывается невозможным заменить командлеты Azure PowerShell на обычные командлеты PowerShell в существующем скрипте из-за различий в синтаксисе команд.