Сборка ARM-шаблонов конвейера - TFS 2018

Мой клиент использует TFS 2018 в качестве инструмента CI / CD . Я знаю, что вы можете использовать TFS для развертывания шаблонов ARM в Azure , но я никогда раньше этого не делал. Обычно я просто использую портал или PowerShell. Я знаю, что мне нужно создать конвейер для выполнения развертывания, но у меня есть несколько других вопросов, которые меня не устраивают:

  1. Это конвейер сборки и выпуска ] (оба) требуются с шаблонами ARM , если инфраструктура не меняется (или почти никогда)?У меня сложилось впечатление, что большинство людей используют конвейер сборки для проверки шаблона или своего кода, а затем выпуск должен быть развернут в лазурном или другом месте.
  2. Могу ли я использовать один-единственный шаблон ARM , который содержит все мои ресурсы для развертывания, или мне нужно развернуть отдельные шаблоны (ASP, затем веб-приложение, затем учетная запись хранения, затем Redis)?
  3. Группа ресурсов требуется перед Я разворачиваю что угодно. Могу ли я включить этап создания группы ресурсов в шаблон ARM со всем остальным (RG + все ресурсы в одном шаблоне), или мне понадобится шаблон для RG, а затем другой шаблон (ы)?
  4. Если они есть несколько сред (dev, test, prod) мне нужно несколько конвейеров сборки / выпуска для каждой среды или можно настроить конвейер, который указывает на каждый env ? Ресурсы в каждом env будут иметь разные соглашения об именах , поэтому я не уверен, как это повлияет на вещи, кроме необходимости обновления значений в шаблонах ARM.

Я был бы признателен за любые советы / предложения в отношении мои вопросы выше, спасибо!

0
задан 18 November 2020 в 21:14
2 ответа

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

Чтобы ответить на ваши вопросы:

  1. Вы можете использовать любой из них. Нет необходимости использовать конвейеры сборки или выпуска, развертывание шаблонов ARM будет работать с ними. Выбор обычно зависит от вашего процесса и того, как вы хотите, чтобы ваше развертывание работало. Конвейеры сборки обычно создают ресурсы для тестирования или как часть сборки, тогда как выпуски обычно предназначены для выпуска приложений и этапов поддержки, шлюзов и т. Д. Все это говорит о том, что я также рекомендовал бы взглянуть на новые конвейеры на основе YAML, которые устраняют различие между сборкой и выпуском, так как это то, на чем будет сосредоточено внимание в будущем.

  2. Вы можете сделать то же самое. У вас может быть один большой шаблон ARM, который делает все, просто убедитесь, что ваши зависимости настроены в шаблоне, или у вас может быть несколько шаблонов.Если у вас есть несколько шаблонов, вы можете запускать их по одному в качестве шага в Azure DevOps, или вы можете использовать вложенные шаблоны, чтобы ваш шаблон верхнего уровня вызывал подшаблоны.

  3. Вы можете создать группу ресурсов как часть вашего ARM шаблон, однако он немного усложняет его. Шаблоны ARM имеют несколько областей действия, большинство ресурсов создается в области действия группы ресурсов (как если бы они находились внутри группы ресурсов), но группы ресурсов создаются в области действия подписки (они находятся внутри подписки). Чтобы создать оба в своем шаблоне, вам необходимо запустить развертывание в области подписки, а затем использовать вложенный шаблон для развертывания элементов области ресурсов. У меня есть подробное объяснение, как это сделать здесь .

  4. Если вы хотите развернуть в нескольких средах в одном конвейере, вы можете сделать это, вам нужно будет использовать либо конвейер выпуска ( не сборка) или конвейер YAML. Оба они поддерживают использование «стадий», где каждая стадия может быть средой. Затем вы можете выполнить развертывание в каждой среде в нужном вам порядке. Подробную информацию об этом можно найти здесь для конвейеров выпуска и здесь для YAML.

1
ответ дан 4 January 2021 в 09:24

Я бы использовал конвейеры выпуска с задачей развертывания группы ресурсов. Это самый простой способ использовать для этой цели TFS.

1
ответ дан 4 January 2021 в 09:24

Теги

Похожие вопросы