#git #version-control #terraform
#git #контроль версий #terraform
Вопрос:
Terraform может создать несколько файлов в каталоге .terraform.
- Файл .tfstate, который представляет собой файл json, содержащий состояние. Я могу рассмотреть этот вопрос для этого.
- Резервные копии .tfstate, которые, я уверен, я могу .gitignore.
- Каталог модулей, который содержит ссылки на модули.
terraform get
Команда создаст символические ссылки на пути к моим локальным модулям, если я использую локальные модули. Эти имена путей являются хэшами, например
7a1d2376c59a613c3888163f019b98c1@ -> /Users/michael/dev/a-project/terraform/modules/netpart
dc86adf2084ae95b189765d26b75702d@ -> /Users/michael/dev/a-project/terraform/modules/cluster
e03511e017c5612ae4b9e9ebc49d4611@ -> /Users/michael/dev/a-project/terraform/modules/cluster
eb8c48ae43e85626ff456d0a58a6a6a6@ -> /Users/michael/dev/a-project/terraform/modules/netpart
Все эти файлы находятся в одном репозитории. Когда коллега клонировал это репозиторий, он заметил, что запуск terraform get
привел к появлению новых символических ссылок, хотя модули не изменились.
Должен ли я добавить каталог .terraform /modules в .gitignore и требовать, чтобы все разработчики запускали terraform get
его в любое время git pull
?
Ответ №1:
Мы gitignore всю .terraform
папку целиком.
Да, это означает, что вам нужно запускать a terraform get
перед каждым действием, но обычно при работе в составе команды вы захотите обернуть свои действия Terraform во вспомогательные скрипты, которые могут делать это, а также управлять удаленным состоянием для вас.
На самом деле в приведенной выше документации для terraform get
явно не рекомендуется передавать папку в систему управления версиями:
Модули загружаются в папку local .terraform . Эта папка не должна передаваться в систему управления версиями.