Статьи

Все как код: шаблон формирования облака (ECS Fargate) через Дженкинса

Вступление

Эта статья является примером «Все как код» для создания стека ECS Fargate в AWS с использованием шаблона Cloud Formation через Jenkins.

Только Jenkins Master и кодовая база требуются для проверки этого потока. Проверьте URL Github, упомянутый ниже, чтобы обратиться к коду.

Вы также можете насладиться:  лучшим из двух миров с AWS Fargate

Конфигурация Дженкинса

Для запуска конвейера требуется некоторая конфигурация главного узла Jenkins. 

Установка Docker

Настройте установку Docker в Jenkins> Управление Jenkins> Глобальная конфигурация инструментов> Docker.

Рисунок 1: Конфигурация установки Docker в Jenkins Master

Учетные данные AWS

Необходимо сохранить учетные данные AWS в Jenkins> Учетные данные> Система> Глобальные учетные данные> Добавить учетные данные

Рис. 2. Конфигурация учетных данных AWS в Jenkins.

Тогда это будет выглядеть под Jenkins> Credentials:


Быть знакомым с файлами и папками 

В репозитории кода есть несколько файлов и папок, как показано ниже.

  1. Папка Templates — содержит файл YAML, в котором есть код Cloud Formation для создания ECS Fargate.
  2. Папка Parameters — содержит файл JSON и содержит все необходимые параметры Cloud Formation YAML
  3. Dockerfile — создается настроенный Dockerfile с возможностями AWS CLI и Cloud Formation Linting; нет необходимости устанавливать их специально на Jenkins Master.
  4. Jenkinsfile — конвейер Jenkins, который запускает все этапы, такие как «Опрос SCM», «Проверка шаблона CF и JSON» и «Создание стека формирования облака».

Подход 

Есть так много подходов для достижения одной и той же задачи. Первые несколько CLI (AWSCLI и CFN-LINT) должны быть установлены на Jenkins Master, или доступно множество плагинов Jenkins для запуска параметров ECS Fargate.

Здесь используется подход, при котором весь код будет удален, а Jenkins Pipeline полностью написан на основе кода.

Модульный подход применяется для кода Cloud Formation, где шаблоны и параметры хранятся в отдельном каталоге, поэтому будет проще лучше обрабатывать код CF.

Настроенный Dockerfile позаботится о CLI AWS и CFN-LINT; нет необходимости устанавливать их на Дженкинс Мастер.

Jenkinsfile имеет 3 этапа: 

  1. Извлечение кода из удаленного репозитория Git.
  2. Проверка шаблона CF и файла JSON перед созданием стека ECS Fargate. Шаблон CF будет проверен с использованием CFN-LINT, запущенного внутри контейнера. Однако модуль Python «json.tool» используется для проверки файла JSON. Если есть проблема с шаблоном CF и проверкой файла JSON, этот этап не пройден.
  3. Здесь будет инициировано создание стека ECS Fargate, идентификатор будет успешным, затем он вернет идентификатор стека.

Снимок кода Dockerfile :


Dockerfile