Развертывание ресурсов AWS с действиями GitHub может помочь сэкономить вам много времени и убедиться, что вы развертываете качественные шаблоны. Помимо качества, вы можете быть уверены, что вы поддерживаете свою инфраструктуру-как код (IAC) в соответствии с тем, что на самом деле на самом деле развернут в ваших условиях.
Существует время и место, чтобы не использовать CICD для развертывания ресурсов AWS, но большую часть времени вы можете запустить ваши трубопроводы или рабочие процессы, чтобы доставлять ваши ресурсы непосредственно в свою учетную запись AWS, зная, что то, что развернуто, это именно то, что представлено в вашем мастере ветвь.
Не нужна 30 000 футов. Посмотреть? Прыгайте прямо на код здесь:
https://github.com/rosswickman/aws-automation-workflows
Настройка
Тебе понадобится:
- Клон или вилка репо, связанного выше
- S3 Bucket для хранения шаблонов CFN и TF. Возможно ваше состояние TF. (Рекомендуется, но не требуется)
- IAM пользователь с разрешениями, чтобы доставить шаблоны на S3
- IAM пользователь с разрешениями на развертывание ресурсов
ПРИМЕЧАНИЕ: Вы можете сделать это одним пользователем IAM, но я рекомендую минимизировать радиус взрыва с наименьшими привилегией, где это возможно. В идеальной производственной ситуации вы должны настроить бегун действий GitHub в вашей среде с необходимыми разрешениями.
Конфигурация
Разверните три стека в Требования/
каталог общего репо. Рабочие процессы настраиваются для региона US-West-2, поэтому развертывайте там.
Настройте секреты репозитория, получив ключи доступа IAM из менеджера AWS Secrets в вашей учетной записи.
Создайте филиал «функции» или «Обновить» в вашем проекте, который вы клонировали сверху или созданные самостоятельно.
Если вы клонировали/раздавили проект, чтобы начать, вы увидите, что есть облачность
и а террафор
каталог в проекте. Каждый каталог имеет соответствующий шаблон, который развертывает группу безопасности в вашей настроенной учетной записи AWS. Мы использовали группу безопасности, потому что они ничего не стоят. Вам нужно будет обновить идентификатор VPC (с US-WEST-2) в каждом шаблоне для ресурса, чтобы правильно развернуть в своей учетной записи, но это все, что вам нужно сделать.
Процесс
Перед развертыванием чего-либо до (конкретно) производства шаблоны должны быть рассмотрены для вопросов безопасности и качества безопасности. Для этого мы используем инструменты, такие как Superlinter, CFN-NAG, CFN-Lint и Checkov.
Каждый инструмент представлен рабочим процессом, который завершает соответствующий процесс. Эти рабочие процессы могут быть организованы по своему вкусу. Однако, поскольку они настроены в этом проекте, этот процесс будет работать после того, как вы нажимаете какие-либо изменения в вашу функциональную ветку.
После того, как наши шаблоны проверили и передавайте эти основные проверки, мы можем доставить шаблоны в ведро S3. Это позволяет шаблонам быть упомянутым в консоли AWS или сохранены для резервного копирования, но не требуется.
Чтобы подготовить ресурсы для доставки и развертывания, вам нужно будет создать запрос на тягу. Запрос на тягу будет запустить план террафора и показать вам, что произойдет, если шаблон террафора развернут.
Доставка происходит при объединении главной ветви. Вы можете настроить развертывание ресурсов, чтобы быть автоматическим или ручным триггером. В некоторых случаях ручное развертывание имеет большое значение. Я позволю тебе быть судьей того, что должен быть ручным триггером.
Финальный продукт
Как только ваш запрос на тягу был объединен в главную ветку, шаблоны были доставлены в ведро S3, которое вы настроили с использованием инструкций в проекте GIT. Если вы покинули только рабочие процессы, развертывание облака и террафора развертывает необходимое ручное действие для запуска.
После успешно завершена и завершена, вы должны увидеть две новые группы безопасности, прикрепленные к вашему VPC. Один развернул через шаблон облака и другого с террафом.
Там у вас есть. Вы только что настроили рабочий процесс CICD/D для доставки шаблонов ресурсов AWS, управляемые исходными устройствами непосредственно на вашу учетную запись.
В будущих постах я покажу, как развернуть AWS Organization Stacksets, а также развертывание Stacksets к многорудной конфигурации, полученной из одного репо.
Я знаю, что есть много разных способов настроить этот процесс, эта демонстрация использует один репозиторий для шаблонов CFN, так и для TF. Это может не всегда быть желаемым решением. Если вы аналогично развертываете ресурсы, я хотел бы знать, что вы делаете по-другому или, если у вас есть какие-либо рекомендации о том, что я должен делать по-другому.
Оригинал: «https://dev.to/aws-builders/automate-aws-resource-review-and-deployments-with-github-actions-3chj»