我正在尝试使用办公室网络中的 terraform 构建虚拟机。我收到以下错误,因为服务器无法访问互联网。无论如何,我可以离线下载插件吗?
Initializing provider plugins...
- Checking for available provider plugins...
Registry service unreachable.
This may indicate a network issue, or an issue with the requested Terraform Registry.
Error: registry service is unreachable, check https://status.hashicorp.com/ for status updates
Run Code Online (Sandbox Code Playgroud)
注意:当我最初编写该评论时,该评论中的说明是正确的,但情况从 Terraform v0.13 及更高版本开始略有变化,因为 Terraform 现在支持从多个注册表中的多个命名空间进行自动安装。
您可以在CLI 配置文档中找到有关为现代 Terraform 配置自动插件安装的更多信息,特别是在提供程序安装部分。
我保留了下面的内容,对于现代 Terraform 来说大致如此,因为 Terraform 仍然支持-plugin-dir作为设置的遗留替代方案provider_installation,但下面的内容主要仅对 Terraform v0.12 及更早版本有用。
默认情况下,Terraform 会发出请求来registry.terraform.io查找提供程序插件。如果您在无法直接通过互联网访问服务的环境中运行 Terraform ,那么您确实可以要求 Terraform 在插件方面以仅本地模式运行。
为此,首先找到您想要使用的提供程序插件可执行文件。在撰写本文时,这些内容位于releases.hashicorp.com上,尽管该位置将来可能会发生变化。
将您下载的 zip 文件解压缩到一个目录中,因此您最终会得到一个平面目录,其中仅包含可执行文件,名称如下:
terraform-provider-aws_v2.0.0
terraform-provider-null_v1.0.0
terraform-provider-template_v2.0.0
Run Code Online (Sandbox Code Playgroud)
填充此插件目录后,您可以terraform init使用额外的选项运行-plugin-dir,将路径传递到刚刚填充的目录。例如:
terraform init -plugin-dir=/opt/terraform/plugins
Run Code Online (Sandbox Code Playgroud)
当您使用 时,这会禁用 Terraform 的自动发现和下载功能,并指示它仅-plugin-dir在此本地目录中查找。如果该目录中没有任何必要的插件,将返回错误,在这种情况下,您可以将这些额外的插件下载到您的目录中来修复该问题。terraform init
请注意,Terraform 插件是有版本控制的,Terraform 只接受与配置中给出的版本约束匹配的插件。通常自动安装行为可以自动选择合适的版本,但是当您自己手动下载插件时,您将需要选择合适的版本。
Terraform 有一个命令terraform providers,它将打印出当前配置的提供程序要求,作为提示来帮助您决定下载哪个版本。
| 归档时间: |
|
| 查看次数: |
15079 次 |
| 最近记录: |