Пошаговое руководство: изучение трех способов развертывания шаблонов ARM
Microsoft Azure использует Azure Resource Manager (ARM), который обеспечивает автоматизацию и согласованность при развертывании облачных решений. Часто решение состоит из нескольких частей, которыми могут быть ресурсы любого типа, включая виртуальные машины, учетные записи хранения, виртуальные сети и группы безопасности сети. У нас есть возможность вручную создать решение с помощью Azure Portal, и это совершенно нормально. Но в корпоративной среде нам нужна согласованность и возможность повторного использования кода для развертывания инфраструктуры и решений. Мы можем добиться этого с помощью шаблонов ARM, которые представляют собой файлы на основе JSON (нотация объектов JavaScript), где мы определяем, какие ресурсы и их конфигурацию, а также с помощью Azure Portal, Visual Studio, PowerShell и CLI мы можем развертывать решения в последовательная материя. Мы можем использовать одну и ту же информацию для развертывания одного и того же решения в нескольких средах, и это чрезвычайно полезно при работе в больших и сложных средах.
В этой статье мы рассмотрим несколько шагов, как получить шаблон ARM из существующего ресурса на портале Azure, а затем использовать шаблон для развертывания с помощью Visual Studio, развертывания портала Azure или PowerShell. Имейте в виду, что это не единственные способы использования ваших шаблонов ARM — мы также можем использовать Azure CLI, Visual Studio Team Services и другие, чтобы воспользоваться преимуществами шаблонов ARM, но основное внимание в этой статье будет уделено Visual Studio, Azure Portal. и PowerShell.
Первые шаги: использование шаблонов ARM и Visual Studio
Приступим к изучению шаблонов Visual Studio и ARM. Мы увидим, как получить достаточно информации из существующего развертывания, чтобы помочь в создании собственных шаблонов ARM. А пока давайте создадим новый проект ( Файл / Новый проект) и выберем группу ресурсов Azure, расположенную под элементом .
Появится мастер, который спросит, какой тип ресурса мы пытаемся развернуть. Мы можем начать с нуля, выбрав Пустой шаблон или выбрав любой из доступных шаблонов. Имейте в виду, что мы можем использовать этот мастер, добавив ресурс позже через графический интерфейс пользователя.
Начальная страница Visual Studio предоставляет массу информации для ваших будущих шаблонов ARM. По сути, с правой стороны (элемент 1 ниже) у нас будут все файлы, которые являются частью текущего решения (у нас должны быть файлы azuredeploy.json и azuredeploy.parameters.json). Там будет указан каждый файл, который мы открываем (пункт 2), и мы можем редактировать код, нажимая на эти вкладки.
Каждый файл JSON содержит четыре основных раздела: , , и , куда мы в конечном итоге добавим наш код для развертывания наших ресурсов Azure. В левой части (пункт 4) у нас есть графическое представление того, что указано в коде (пункт 3), для любой новой записи в коде слева будет отображаться значок, который помогает понять элементы, которые добавляются и для целей навигации.
Мы можем добавить новые ресурсы в существующий шаблон ARM двумя разными способами. Мы можем написать код, скопировать из существующего развертывания или фрагменты кода из Интернета (например, GitHub) или использовать Visual Studio для добавления ресурсов (просто щелкните правой кнопкой мыши ресурсы, а затем выберите Добавить новый ресурс и выберите ресурс из списка и введите информацию и внесите изменения в соответствии с нашими требованиями).
Чтобы выполнить развертывание из Visual Studio, щелкните правой кнопкой мыши , выберите Deploy и New. В новом диалоговом окне выберите или добавьте свою подписку, определите группу ресурсов и оба файла JSON.
Если мы нажмем «Изменить параметры», расположенные рядом с мы сможем указать значения, и когда мы нажмем «Сохранить», все эти параметры будут автоматически сохранены в файле azuredeploy.parameters.json.
Использование скрипта автоматизации
Один из моих любимых методов — использование функции сценария автоматизации. Моя рекомендация понять доступные возможности — создать новую группу ресурсов на портале Azure, а затем создать нужный ресурс. В этой статье мы собираемся создать учетную запись хранения. Нажмите «Создать ресурс», введите «хранилище» и создайте учетную запись хранения.
Теперь, когда у нас есть ресурс в нашей группе ресурсов, мы можем проверить сценарий автоматизации, и на новом блейде мы можем увидеть обобщенный шаблон ARM для развертывания текущего ресурса. Мы можем проверить файл шаблонов и параметров ARM, а также несколько других методов развертывания, таких как Azure CLI, PowerShell,.NET и даже Ruby.
Одной из функций является загрузка zip-файла, содержащего процесс развертывания для каждого описанного метода и шаблонов ARM (template.json и parameters.json).
Если вы хотите выполнить новое развертывание с использованием информации о текущем шаблоне ARM, просто нажмите «Развернуть», и появится колонка «Выборочное развертывание». В нем уже есть вся информация о шаблоне ARM из предыдущего блейда. По сути, нам просто нужно проверить информацию. В нашем случае мы хотим использовать другое имя, чтобы избежать ошибки во время развертывания.
В этом же месте у нас есть возможность изменить сам шаблон или даже параметры на лету. Чтобы развернуть, просто выберите вариант Я согласен с условиями, изложенными выше, и нажмите «Купить», чтобы начать новое развертывание.
Несколько важных моментов и рекомендаций по скрипту автоматизации, о которых мы должны знать перед использованием этой функции, а именно:
- Сценарий автоматизации всегда будет отражать все ресурсы, развернутые в любой заданной группе ресурсов. Если вы хотите устранить неполадки с определенным ресурсом, иметь группу ресурсов, содержащую только объект, гораздо проще для чтения, чем занятую группу ресурсов с множеством развернутых ресурсов.
- Шаблон ARM, который мы видим в сценарии автоматизации, связан с тем, что у вас есть в настоящее время. Например, если вы развернете учетную запись хранения, а через пару дней развернете 10 виртуальных машин и измените исходную учетную запись хранения на использование GRS вместо LRS, в текущем сценарии автоматизации все виртуальные машины и учетная запись хранения будут настроены как GRS.
- Вы можете использовать ту же функцию для проверки свойств и значений при внесении изменений в любой заданный ресурс для устранения неполадок или при создании собственных шаблонов ARM.
- Я рекомендую избавиться от строк комментариев, потому что они сообщают нам, что текущий шаблон был обобщен, а исходная информация (не требуется при развертывании новых материалов)
Использование PowerShell
Если у вас есть шаблон ARM и ваши параметры, мы можем воспользоваться преимуществами PowerShell и использовать командлет New-AzureRMResourceGroupDeployment. Нам нужно указать имя группы ресурсов, файл шаблона, мы также можем передать параметры, которые ожидает файл шаблона, или даже передать файл параметров со всеми ответами.
В приведенном ниже примере у нас есть параметр в файле JSON с именем storageaccounts_ap6enteprisesstgacct006_name, и я назначаю имя , где результатом будет новая учетная запись хранения с этим именем.
Имейте в виду, что мы просто используем имя параметра, полученное из сценария автоматизации в начале этой статьи. В обычном сценарии мы работали бы над именами параметров, чтобы сделать их простыми и легкими в развертывании.
Последние мысли
В этой статье мы предоставили некоторые рекомендации о том, как получить информацию для создания файлов шаблонов ARM и как развернуть их с помощью портала Azure, Visual Studio и/или PowerShell. Но мы только поцарапали поверхность.
Используя шаблоны ARM, у нас есть несколько способов их интеграции в наш жизненный цикл развертывания. Мы можем воспользоваться инструментами, рассмотренными в этой статье, а также использовать GitHub для развертывания облачных решений.