Структура папок Terraform - Модули против файлов - PullRequest
0 голосов
/ 07 июня 2018

Не уверен, что будет правильный или неправильный ответ на этот вопрос, но мне просто интересно, как люди управляют Terraform в реальном мире?С точки зрения использования модулей, различных сред и совместной работы.

В настоящее время мы планируем создать производственные, разработочные и тестовые среды.Все похожие.

Сейчас я создал свои файлы терраформ таким образом, чтобы определить отдельные компоненты AWS, например, для VPC, IAM, EC2, мониторинга (CloudWatch + CloudTrail + CloudConfig) и т. Д.И есть одна переменная file и .tfvars для вышеперечисленного, поэтому файлы переносимы (все среды будут одинаковыми).Так что если вам нужно что-то изменить, все это в одном месте.Также означает, что если у нас запущен конкретный проект, я могу создать tf-файл, определяющий все ресурсы для проекта, и вставить его, а затем завершить его удалить.

Каждая среда имеет собственную структуру папок в нашей Terraform.сервер.

Это слишком упрощенно?Я продолжаю смотреть на модуль.

Также есть ли у кого-нибудь опыт сотрудничества с Terraform, как в разных командах?Я искал такие вещи, как Atlantis, чтобы связать их с GitHub, поэтому любые изменения должны быть одобрены.Но в то же время с правильной ролью IAM я могу ограничить то, что Terraform может изменить.

Как я уже сказал, это может быть неправильный правильный ответ, просто интересующийся тем, как люди управляют terraform и их опытом.

Спасибо

1 Ответ

0 голосов
/ 22 ноября 2018

Мой ответ - всего лишь пример использования ...

Мы используем terraform для приложения, развернутого для нескольких клиентов, каждый из которых имеет небольшие специфические функции конфигурации.

У нас только одна VCSрепозиторий.Мы не используем механизм веток VCS.

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

  • Мы также используем одну глобальную папку с удаленными состояниямидля разделения состояний между конфигурациями клиентов
  • Мы используем одну папку для каждого клиента и используем рабочие пространства (прежняя среда) для каждого контекста для каждого клиента (prod: blue / green, stage)
  • Для общей инфраструктурымы используем модуль

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

Надеюсь, это поможет вам ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...