Как мне вложить стеки Terraform за верхний уровень и модуль - PullRequest
0 голосов
/ 25 сентября 2018

Terraform адресует повторное использование компонентов через модули.Поэтому я мог бы поместить определение для AWS Autoscale Group в модуль, а затем использовать несколько файлов ресурсов верхнего уровня, использующих эту ASG.Пока все хорошо.

Мой вопрос: как использовать Terraform для группировки и организации нескольких файлов ресурсов верхнего уровня?Другими словами, каков следующий уровень организации?

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

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

1 Ответ

0 голосов
/ 25 сентября 2018

В какой-то момент вы не можете или нет смысла абстрагироваться дальше.У вас всегда будет файл ресурсов верхнего уровня (например, main.tf), в котором описаны используемые модули.Вы можете организовать эти файлы ресурсов верхнего уровня следующим образом:

Использовать рабочие пространства Terraform

Вы можете использовать рабочих пространств - в вашем случае, возможно, по одному на имя клиента.Каждое рабочее пространство имеет свое собственное состояние Terraform.Затем вы можете использовать переменную terraform.workspace в вашем коде Terraform.Рабочие пространства также можно использовать для работы с различными средами.

Использовать отдельные файлы состояний

Для каждого из ваших клиентов предусмотрен один файл состояния верхнего уровня, т. Е. clienta.main.tf, clientb.main.tf и т. Д.все они находятся в одном репозитории и используют сценарий для их запуска по отдельности или по любому шаблону, который вы предпочитаете;или у вас может быть один репозиторий для каждого клиента.

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

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