Быстрая автоматизация развертывания ресурсов в Google Cloud с помощью платформы IaC и CI/CD

В этой статье я в простой форме покажу вам, как настроить CI/CD конвейер для автоматического развертывания ресурсов инфраструктуры облака Google с помощью Terraform, Cloud Build и Github.

Цели

Автоматическое развертывание ресурсов в Google Cloud из кода Terraform, размещенного в репозитории контроля исходных кодов.

Требования

Чтобы выполнить все шаги этой статьи, вам понадобится функциональный аккаунт в облаке Google (можно использовать бесплатную пробную версию), аккаунт Github, а также базовые знания в области облака Google и Terraform.

Предоставление необходимых разрешений Cloud Build

Чтобы Cloud Build мог выполнять необходимые развертывания на инфраструктуре, ему нужны соответствующие разрешения. В этой лабораторной работе я буду действовать быстрее, предоставив учетной записи службы роль редактора проекта. Получите учетную запись службы Cloud Build и предоставьте ей необходимые разрешения, чтобы она могла вносить необходимые изменения в ресурсы.

Конечно, в производственной среде необходимо соблюдать принцип наименьших привилегий.

Для этого выполните следующую команду в оболочке облака

Чтобы получить учетную запись службы Cloud Build, нажмите на Cloud Build, затем settings.

Там вы найдете адрес электронной почты учетной записи сервиса.

Настройте репозиторий Github и подключите к нему Cloud Build

Войдите на Github и создайте новое репо, затем загрузите файлы Terraform или отредактируйте новые прямо на Github. [Click here](https://Github.com/davWK/ci-cd-terraform-cloudbuild_basics для форка моего примера репозитория файлов инфраструктуры, или, если вы хорошо знакомы с Terraform и хотите развернуть собственную инфраструктуру, напишите их с нуля. После этого перейдите в Cloud Build для настройки автоматического развертывания с помощью триггера сборки. Вы будете использовать Cloud Build и его триггеры сборки для автоматического развертывания ваших ресурсов каждый раз, когда вы делаете новый git-коммит в исходный репозиторий.

  1. Перейдите в Cloud Build

  2. и слева выберите триггер

  3. нажмите на кнопку «Создать триггер

  4. Дайте ему имя, а для события выберите push to the branch.

  5. Для источника выберите** репозиторий** и нажмите подключить новый репозиторий.
    Здесь можно связать репозиторий Github с Cloud Build путем зеркалирования репозитория Github в Cloud Source Repositories или с помощью приложения Google Cloud Build Github. В данном случае мы будем использовать приложение
    Посмотрите, как настроить приложение. После настройки приложения,

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

  7. В ветке установите значение ^master$ или ^main$

  8. Для типа конфигурации выберите файл конфигурации Cloud Build (yaml или json)
    и в своем Github-репозитории создайте файл cloudbuid.yaml с приведенным ниже содержимым.

steps:
- id: 'tf init'
  name: 'hashicorp/terraform:1.0.0'
  entrypoint: 'sh'
  args: 
  - '-c'
  - |
      terraform init

- id: 'tf apply'
  name: 'hashicorp/terraform:1.0.0'
  entrypoint: 'sh'
  args: 
  - '-c'
  - |
      terraform apply -auto-approve
Вход в полноэкранный режим Выйдите из полноэкранного режима

Вернитесь на страницу триггера, в поле location, выбрав repository, укажите путь к yaml-файлу или выберите inline (в этом случае вам не нужно будет создавать yaml-файл в репозитории, а достаточно будет вставить содержимое yaml прямо в редактор кода).
Оставьте остальные значения по умолчанию и нажмите на кнопку create

Вуаля 🙂 развертывание ваших ресурсов должно начаться автоматически, если вы сделаете push yaml файла, созданного ранее, если нет, вы можете запустить его вручную в первый раз, в последующие разы, как только вы обновите конфигурацию Terraform, обновление ваших ресурсов должно произойти автоматически.

Оцените статью
devanswers.ru
Добавить комментарий