Как разделить файл terraform (main.tf) на несколько файлов (без модулей)? - PullRequest
0 голосов
/ 19 сентября 2019

У меня есть инфраструктура GCP, развернутая через Terraform: корзины, учетные записи служб, вычислительные машины, VPC, облачный SQL, BigTable, BigQuery, Composer и т. Д.

Terraform v0.11.10 Поставщик "google" (2.15.0)

Недавно клиент попросил меня разделить наш единственный файл terraform (например, main.tf) на несколько файлов.Например: одни файлы для Buckets, другие для учетных записей служб, другие для служб баз данных и т. Д.

У меня только один файл состояния terraform, расположенный в ведре GCP.

Как я могу это сделать ссамое низкое влияние?А как насчет состояния терраформ?(Будут ли также несколько файлов состояния?) Или идея сохранить только один файл TF, даже если мы разделим код?)

ПРИМЕЧАНИЕ : Это не имеет ничего общего сМодули Terraform, это просто разделение одного файла Terraform (.tf) на несколько файлов (.tf)

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 19 сентября 2019

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

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

(Существует особый случай для Переопределить файлы , которыйделает вышеприведенное не совсем верным. Пока вы избегаете именовать какие-либо из ваших файлов override.tf или суффиксом _override.tf, этот особый случай не будет применяться, но я упоминаю это только для полноты.)

1 голос
/ 19 сентября 2019

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

Файл tfstate относится к развертыванию.У вас будет только один.

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

...