Не могу скачать модуль terraform - PullRequest
0 голосов
/ 08 апреля 2019

У меня есть инфраструктура моего приложения, определенная в terraform / terragrunt.Чтобы иметь возможность развернуть полное приложение в разных средах, я создал единый модуль со всем приложением.Однако я продолжаю получать:

Error downloading modules: Error loading modules: module xxx: No Terraform configuration files found in directory: .terraform/modules/59ff835a2c7f654267e9f157739ec63a

Не могу понять проблему

Ответы [ 2 ]

1 голос
/ 08 апреля 2019

Terraform выдаст это сообщение, если пакет / каталог, обозначенный source, не содержит файлов .tf.

Одна из причин, по которой это может произойти, - если source относится к пакету (например,репозиторий или архив), который на самом деле содержит несколько модулей в подкаталогах, но в корневом каталоге ничего нет.В то время как Стандартная структура модуля требует наличия какого-либо модуля объединения по умолчанию в корне, при этом другие подмодули служат в качестве отдельных компонентов этого значения по умолчанию, что является скорее соглашением, чем требованием.и при желании пакет может содержать только модулей в подкаталогах.

Чтобы обратиться к модулю в подкаталоге , используйте специальный двойной слеш //разделитель для отделения пути пакета от пути подкаталога.

Например, для доступа к подкаталогу modules/consul-cluster из к модулю hashicorp/consul/aws в Terraform Registry, вашемполный source адрес будет hashicorp/consul/aws//modules/consul-cluster.Аналогично, для подкаталога vpc источника репозитория git git::https://example.com/network.git вы должны установить source на git::https://example.com/network.git//vpc.

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

0 голосов
/ 08 апреля 2019

Проблема заключалась в том, что я сохранил структуру нескольких каталогов, например: security / iam и файлы внутри таких каталогов.Кажется, модули не поддерживают это, просто плоская структура каталогов.В конце концов, я сохранил однокомпонентное приложение в плоском каталоге с префиксом в файлах для «пространства имен».

Кстати, это промежуточный рефакторинг, пока я не смогу создать больше модулей для приложения.

...