错误:下载模块失败:无法从 "git::https://github.com/myorg/terraform-modules.git//networking?ref=v1.0" 下载模块 "my_module"(main.tf:1)的源代码:下载 'https://github.com/myorg/terraform-modules.git' 时出错:git clone 失败:远程:未找到仓库。
Error: Failed to download module: could not download module "my_module" (main.tf:1) source code from "git::https://github.com/myorg/terraform-modules.git//networking?ref=v1.0": error downloading 'https://github.com/myorg/terraform-modules.git': git clone failed: remote: Repository not found.
ID: terraform/module-source-not-found-git
版本兼容性
| 版本 | 状态 | 引入 | 弃用 | 备注 |
|---|---|---|---|---|
| Terraform v1.5 | active | — | — | — |
| Terraform v1.6 | active | — | — | — |
| Terraform v1.7 | active | — | — | — |
| Git v2.30+ | active | — | — | — |
根因分析
模块源中指定的 Git 仓库不存在、是私有的且没有正确认证,或者 URL 不正确(例如拼写错误、错误的组织名称)。
English
The Git repository specified in the module source does not exist, is private without proper authentication, or the URL is incorrect (e.g., typo, wrong org name).
官方文档
https://developer.hashicorp.com/terraform/language/modules/sources#git解决方案
-
Verify the repository URL is correct by manually cloning it: 'git clone https://github.com/myorg/terraform-modules.git'. If it fails, check for typos or access permissions. For private repos, use a personal access token: 'git clone https://<token>@github.com/myorg/terraform-modules.git' or configure git credentials. Then run 'terraform init' again.
-
If the repo is private, set up Git credentials via environment variable: 'export GIT_TERMINAL_PROMPT=0' and 'export GIT_ASKPASS=/path/to/helper' or use SSH authentication. Example: 'export GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa -o StrictHostKeyChecking=accept-new"' then 'terraform init'.
无效尝试
常见但无效的做法:
-
90% 失败
In non-interactive CI/CD environments, there is no terminal for password input. Also, Git credentials should be configured via SSH keys or tokens, not interactive prompts.
-
85% 失败
SSH access requires proper SSH keys configured in the environment. Without keys, SSH also fails with 'Permission denied'.
-
95% 失败
The -from-module flag is for migrating state, not for fixing module download errors. It does not affect source URL resolution.