Terraform CI/CD
Коли над конфігурацією Terraform працює кілька людей, необхідно додати нові кроки до робочого процесу, щоб забезпечити безперебійну спільну роботу. Ви побачите, що багато з цих кроків паралельні змінам, які ми вносимо в робочий процес, коли працюємо над кодом програми в команді, а не індивідуально.
Використовувати IaC, ми зазвичай спрощуємо речі, але управління файлом стану Terraform - це перший виклик, з яким ви зіткнетеся. По суті, стан Terraform містить конфіденційну інформацію, яка не повинна зберігатися засобами контролю версій, але, в той же час, не масштабується, якщо над одним станом Terraform працює кілька користувачів.
Як вирішити цю проблему? Використовувати віддалені Бекенди.
Щоб керувати інфраструктурою за допомогою GitLab, ви можете використовувати інтеграцію з Terraform для визначення ресурсів, які ви можете змінювати, повторно використовувати та ділитися ними:
- Керуйте низькорівневими компонентами, такими як обчислювальні, сховища та мережеві ресурси.
- Керуйте високорівневими компонентами, такими як записи DNS і функції SaaS.
- Включайте розгортання GitOps та робочі процеси Infrastructure-as-Code (IaC).
- Використовуйте GitLab як сховище стану Terraform.
- Зберігайте та використовуйте модулі Terraform, щоб спростити прості та складні інфраструктурні патерни.
Додаткові посилання
- https://docs.gitlab.com/ee/user/infrastructure/iac/
- https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Terraform.gitlab-ci.yml
- https://medium.com/@dksoni4530/a-complete-overview-of-gitlab-managed-terraform-state-b30114f84c27
- https://gitlab.com/production-ready/courses/devops-junior-3/app/-/blob/main/.gitlab-ci.yml