Как установить PowerShell с открытым исходным кодом на виртуальную машину Linux в Azure

Опубликовано: 6 Марта, 2023
Как установить PowerShell с открытым исходным кодом на виртуальную машину Linux в Azure

Когда вы думаете о «программном обеспечении с открытым исходным кодом», Microsoft может быть не первым именем, которое приходит вам на ум. Но на самом деле крупнейшая в мире компания-разработчик программного обеспечения получает все больше и больше открытого исходного кода. Отчет GitHub «Состояние Octoverse 2016» показал, что Microsoft является организацией с наибольшим количеством участников с открытым исходным кодом. Кто бы мог подумать, что несколько лет назад? Также почти каждая третья виртуальная машина, размещенная в Azure, работает под управлением Linux.

Одним из наиболее захватывающих событий является недавнее решение Microsoft открыть исходный код своей популярной оболочки PowerShell. Между тем казалось, что статья о виртуальных машинах Linux, размещенных в Azure, давно назрела. И так как я большой поклонник PowerShell, я решил совместить оба. Функция с открытым исходным кодом позволяет устанавливать PowerShell в нескольких дистрибутивах Linux. Сюда входят CentOS и Ubuntu, а также Mac OS. Я покажу вам, как развернуть PowerShell на экземпляре Linux, используя шаблоны ARM и расширения пользовательских сценариев.

Итак, с чего начать?

Шаблон Azure Resource Manager или PowerShell?

Поскольку я большой поклонник шаблонов Azure Resource Manager, я буду использовать шаблон для развертывания виртуальной машины Linux. Разница между PowerShell и шаблонами проста, но очень важна. Так называемые шаблоны ARM используют декларативный стиль для развертывания ресурсов в Azure. PowerShell, с другой стороны, имеет императивный стиль. Основное преимущество шаблонов заключается в том, что я могу легко развернуть несколько экземпляров и/или ресурсов, просто описав их. После этого я могу поделиться ими со своими коллегами в репозитории GIT или где-то еще. Эти шаблоны очень хороши для совместного использования и для больших сред.

Примечание. Microsoft и участники сообщества используют множество шаблонов быстрого запуска на Github, которые вы можете найти здесь.

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

Создание шаблона

Создать шаблон довольно просто и легко, потому что вы можете использовать редактируемый шаблон быстрого запуска. Чтобы сделать это еще проще, я поделюсь с вами своим шаблоном, чтобы вам не пришлось создавать его с нуля. Поскольку я использую шаблон, мне нужно определить его в декларативной среде, и здесь это становится довольно сложно. В моем случае я не хотел создавать несколько шаблонов для каждого поддерживаемого дистрибутива Linux, а вместо этого использовал только один шаблон. Проблема: при работе с шаблонами императивные операторы, такие как « », невозможны.

Но мне нужно что-то вроде « » для настройки образа ВМ, так как он сильно меняется от CentOS до Ubuntu. Здесь вам помогут комплексные переменные. На следующем рисунке показано определение переменной с именем Эта переменная состоит из нескольких уровней и подуровней, каждый из которых представляет другую операционную систему.

Однако настоящее волшебство происходит в определении переменной Эта переменная объединяет другую переменную ( ) с параметром ( ). Теперь давайте посмотрим на параметр:

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

ЕСЛИ пользователь выбирает « » в качестве своей операционной системы, ТОГДА переменная будет заполнена как

И вот у нас есть необходимое !Переменные , и будут установлены в соответствии с выбранной операционной системой.

Расширение пользовательского скрипта

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

Команда PowerShell, особенно Эндрю Шварцмайер, сделали его невероятно простым в установке. Они разработали скрипт bash, который автоматически проверяет вашу операционную систему и правильно устанавливает PowerShell. Так что вам остается только указать на скрипт, который также опубликован на Github, внутри вашего шаблона. Ссылка может выглядеть примерно так:

И вот оно. Теперь у вас есть инструменты для создания собственной Linux-системы в Azure с установленной на ней PowerShell.

Сохраните шаблон в Azure.

Относительно недавно вы можете сохранять шаблоны в самой Azure без использования внешнего репозитория GIT, как я делал раньше. Если вы хотите сделать его более безопасным, вам просто нужно щелкнуть на портале Azure. Затем найдите «шаблоны», и у вас есть возможность добавить шаблон, как показано ниже:

После этого вы можете легко развернуть или изменить свой шаблон непосредственно в Azure.

Вот и все! Воспользуйтесь щедростью Microsoft и установите новый PowerShell с открытым исходным кодом на свои виртуальные машины Linux, размещенные в Azure.