Рубрики
Uncategorized

Настройка CD для Azure WebApp с поставщиком Terraform для развертывания осьминога

В этом посте я собираюсь настроить процесс непрерывного доставки для Azure WebApp (Функция Azure в этом случае, но это почти то же самое) с развертыванием осьминога. Чтобы сделать его немного интересным, я собираюсь использовать конфигурацию-кодовый подход с совершенно новым поставщиком осьминога для террафора. Теги с DevOps, OctopUsDeyPloer, Terraform, Azure.

В этом посте я собираюсь настроить процесс непрерывного доставки для Azure WebApp (Функция Azure в этом случае, но это почти то же самое) с развертыванием осьминога. Чтобы сделать это немного интересно, я собираюсь использовать конфигурацию-код подхода с совершенно новым Поставщик осьминога для террафора Отказ

Прящи и давайте начнем …

Инструменты

Террафор

Мне нужно понадобиться террафом На моей машине:

Осьминог развертывает

Для этого поста я подписался на Бесплатный уровень осьминого развертывания SaaS предлагает Отказ Конечно, самосовестная версия также будет работать.

При подписании и настроили мою учетную запись, я могу генерировать новую клавишу API, которую я собираюсь использовать с террафом

Вся конфигурация будет сделана против пространства по умолчанию ( Пространства-1 ), однако, это настраивается тоже.

Лазурный

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

# (!) make sure to follow the principle of least privilege here 
# and define the role and scope
az ad sp create-for-rbac --name sp-octopus-deploy

Грабрь Идентификатор арендатора, идентификатор приложения, пароль и значений идентификатора подписки. Мы пожелали им позже.

Функция Azure

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

Полный исходный код — Опубликовано здесь Отказ

.csx. Гист — это следующее

Azure DevOps

Я управляю частью CI в Azure DevOps.

Конфигурация проекта довольно простая, и она настраивается на террафоре можно найти здесь Отказ

Сам трубопровод I это здесь Отказ

Ничего сложного:

  • Строить функцию Azure
  • Пакет Azure DevOps Artifact (ZIP)
  • Загрузите его на встроенный канал осьминога развертывания
  • Создание и триггерный развертывающий развертывание осьминога

Я все еще жду Исправление моему отчету об ошибках для доставки Без этого я не могу сделать эту демонстрацию с конца до конца:(

В этом

Поставщик Terraform не отличается от других провайдеров и можно найти на Реестр Terraform

и Terraform init Буду скачать отсутствующие файлы

Конфигурация

Для демонстрации я собираюсь иметь это Terraform.tfvars Файл для предоставления значений конфигурации Terraporm.

Настроить среду

Теперь мы готовы начать. Сначала я собираюсь настроить новый Окружающая среда Отказ

Среда — это то, как вы организуете цели развертывания (будь то входные серверы или облачные сервисы) на группы, которые представляют собой различные этапы вашего трубопровода развертывания, например, разработка, тестирование и производство.

Вы, вероятно, имели более одного, но это будет делать сейчас.

Цель развертывания

Следующая решающая часть — Цель развертывания

С развертыванием осьминога вы можете развернуть программное обеспечение на серверы Windows, серверов Linux, Microsoft Azure, AWS, Cubernetes Clusters, облаков облаков или падение автономных пакетов. Независимо от того, где вы развертываете ваше программное обеспечение, эти машины и услуги известны как целевые показатели развертывания.

Я использую Octopusdeploy_azure_web_app_deployment_target. , Это вполне специфично. Я мог бы использовать более общий OctopUsdeploy_deployment_target вместо.

Это где я связываю Azure (принцип моего обслуживания) с осьминогом.

Теперь у нас есть хорошая и чистая инфраструктура, определенная в осьминоге.

Проект

Следующий шаг — настроить наши Проект Отказ

Проекты позволяют создавать и управлять своими процессами развертывания, релизы и руганами от API OCTOPUS REST и веб-портала осьминога.

Я устанавливаю Echo API Проект здесь, поместив его в Группа проекта по умолчанию с по умолчанию жизненный цикл Отказ

Процесс развертывания

А теперь сочная часть.

Мое развертывание является Super Simple на самом деле, только один шаг, который поднимает пакет из встроенного корма и нажав на его единственную среду.

Я бы хотел, чтобы все развертывания были такими простыми …

Выпускать

Изначально я хотел автоматизировать создание выпуска и вызвать его через мой трубопровод My Azure DevOps, но из-за очень недавней ошибки я заблокирован здесь. Я обновит этот пост, когда все исправлена, так что сейчас только в ручном процессе.

Я создаю новый выпуск из ZIP-файла в моей встроенной подаче пакета

И теперь я могу сидеть назад и посмотреть, что он разворачивает мою функцию.

Вуаля, он работает и работает.

импорт

Аккуратная часть о развертывании осьминога — это система идентификатора ресурсов. Всегда легко найти идентификатор объекта, который делает его супер легко импортировать существующие ресурсы в ваше государство террафора.

Предположим, что у меня уже настроена среда.

https://cloud-eng.octopus.app/app#/Spaces-1/infrastructure/machines?environmentIds=Environments-7

URL-адрес выглядит таким образом. Среды-7 это идентификатор моей среды.

Все, что нужно для импорта. Окружающая среда — это объявление ресурса и введите одну команду:

Это такое дыхание, по сравнению с длинным и не так легко получить удостоверение личности в Azure:)

Это кросс-пост от моего Персональный блог Отказ

Оригинал: «https://dev.to/asizikov/configure-cd-for-azure-webapp-with-terraform-provider-for-octopus-deploy-4iac»