我在为我的模块定义提供程序时遇到问题。\n当我运行时,Terraform 无法找到提供程序的插件,terraform init并且当我运行时,它会显示我的模块的错误提供程序terraform providers。
我在 Debian 11 上使用 Terraform版本 1.3.7。
\n这是我正在尝试做的一个例子。
\n我有一个 main.tf,其中是我的主要配置和模块。在此示例中,我使用单个模块来创建 Docker 容器。
\n.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 main.tf\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 modules/\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 container_module/\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 main.tf\nRun Code Online (Sandbox Code Playgroud)\n在根模块project/main.tf文件中,我定义提供程序并调用该模块:
terraform { \n required_providers { \n docker = { \n source = "kreuzwerker/docker" \n version = "3.0.1" \n } \n } \n} \n \nprovider "docker" { \n host = "unix:///var/run/docker.sock" \n} \n \nmodule "container" { \n source = "./modules/container_module" \n} \nRun Code Online (Sandbox Code Playgroud)\n在 中modules/container_module/main.tf,我创建了 docker 容器资源:
resource "docker_image" "debian" {\n name = "debian:latest"\n}\n\nresource "docker_container" "foo" {\n image = docker_image.debian.image_id\n name = "foo"\n}\nRun Code Online (Sandbox Code Playgroud)\n当我运行时terraform init,它应该从 下载提供商的插件kreuzwerker/docker。
相反,terraform 会从一次下载插件kreuzwerker/docker,然后尝试再次从hashicorp/docker.
这是命令的输出:
\n.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 main.tf\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 modules/\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 container_module/\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 main.tf\nRun Code Online (Sandbox Code Playgroud)\n当我运行时,terraform providers根据文件我会得到两个不同的源:
terraform { \n required_providers { \n docker = { \n source = "kreuzwerker/docker" \n version = "3.0.1" \n } \n } \n} \n \nprovider "docker" { \n host = "unix:///var/run/docker.sock" \n} \n \nmodule "container" { \n source = "./modules/container_module" \n} \nRun Code Online (Sandbox Code Playgroud)\n根据文档,子模块应从其父模块继承提供程序:
\n默认行为:继承默认提供程序:
\n\n如果子模块没有声明任何配置别名,则providers参数是可选的。如果省略它,子模块将从其父模块继承所有默认提供程序配置。(默认提供程序配置是不使用别名参数的配置。)
\n
required_providers子模块,但它适用于旧版本,并且与我在其他地方看到的相矛盾。providers.tf当我在根目录中创建文件时,我遇到了同样的问题。我应该如何声明我的提供程序,以便子模块可以从根模块继承提供程序?
\n| 归档时间: |
|
| 查看次数: |
2281 次 |
| 最近记录: |