如何解决地形版本.tf
你好,我使用 terraform 的 v13 版本,自从这个版本发布以来,我们被迫通过带有 required_providers 块的 version.tf 系统。 CF https://www.terraform.io/docs/configuration/provider-requirements.html .
我有一个调用子模块 terraform 的 main.tf 脚本。 如下图
module "wab_device" {
source = "./wab-device"
domain = "aws.eu-west-1.example.com"
os = "Linux"
hostnames = { "JTUFFZ06TEST" : { "vm_name" : "JTUFFZ06TEST" } }
description = "Test description use module wab tfv13"
support_group = "Support group"
}
我的 version.tf 如下所示
terraform {
required_providers {
wab = {
source = "private-registry.example.com/org/wab"
version = "1.3.2"
}
vault = {
source = "hashicorp/vault"
}
}
required_version = ">= 0.13"
}
到目前为止,一切都很好
我启动了我的 terraform13 init 我遇到了下面的问题
错误:无法安装提供程序
安装hashicorp/wab时出错:提供者注册表registry.terraform.io 没有名为 registry.terraform.io/hashicorp/wab 的提供程序
terraform 在我的模块内的私有注册表中找不到提供者。我尝试从互联网下载 所以我将version.tf复制粘贴到目录./wab-device
它就像一种魅力。
但理论上是可以的。在实践中我无法修改我的模块 wab-device 因为它是一个 git 存储库而且我不是所有者,我必须对其他 5 个存储库做同样的事情...
我们如何在不指定 submodule 中的 version.tf 的情况下使用该模块。我可以改用别名吗??或 .terraformrc
谢谢你的建议,我会帮助我
问候
解决方法
在 Terraform 中,每个模块负责声明自己的依赖项。这类似于在大多数其他编程语言生态系统中,库如何声明它所依赖的其他库。
出于这个原因,不可能强制一个模块依赖一个它不依赖的新提供者。您需要要求该模块的维护者添加必要的依赖声明,或者派生该模块并将声明添加到您的副本中。
由于这个“wab”模块不是 HashiCorp 本身在 Terraform v0.13 之前分发的提供程序之一,因此您尝试使用的模块很可能是为 Terraform v0.12 而不是 Terraform v0 设计的。 13.在这种情况下,另一种方法是将 Terraform v0.12 也用于您的配置,并保持该版本直到您依赖的所有模块都更新为与 Terraform v0.13 兼容。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。