问题标签 [terraform-template-file]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
terraform - 重用配置在 Terraform 中创建类似的资源
我有下面的 TF 文件,它将创建一个函数 - FirstFunction。这完美地工作。
在文件中,看到用****括起来的部分,需要更改以创建SecondFunction,ThirdFunction等...
我现在的方法是创建多个 TF 文件,复制相同的代码并更改 ** 中包含的部分。
我通读了模块系统,但了解模块系统的限制是我无法引用在同一 TF 根模块中创建的其他组件,如下所示例如在 TF 文件中,我将位置称为 location = azurerm_resource_group.resourcegroupX .location 如果我将其作为一个模块进行,则该位置应称为 location = var.location_name 其中 location_name 应定义为变量。我不能引用使用相同根模块创建的组件。
您能否提出一个解决方案,让我可以根据类似的代码创建多个组件?请注意,在上面的示例中,我在单个 TF 文件中创建了 2 个资源,并且它们都是相关的。
terraform - Terraform 模块覆盖问题。模块每次更新值
我有一个特定模块将再次运行的用例。用例如下:
我创建了一个名为 google_compute_firewall 的资源。然后我通过模块调用了这个资源。该模块将从 yaml 文件中获取与防火墙相关的输入。第一次运行该模块时,它会创建一个 FW,但是当我尝试使用另一个 FW 配置运行同一个模块时,它将删除之前创建的 FW。
这意味着每次我想创建防火墙时,我都需要创建一个新模块。因此,对于 500 个请求,将有 500 个模块,这是没有意义的。我可以探索更好的选择吗?
先感谢您!!
terraform - Terraform 模板文件功能 - ssh 配置或 ansible 主机文件创建
是否可以使用 terraform templatefile 函数创建 ssh 配置或 ansible 主机文件?使用 Terraform 0.12。
地形定义:
我的问题是我不知道模板文件应该是什么样子,尤其是插值或指令..
ansible_hosts.tpl
ssh_config.tpl
ansible hosts 文件和 ssh 配置应如下所示:
ansible_hosts
ssh_config
terraform - 了解 terraform 提供程序和插件
有没有更简单的方法来理解它们?当我在我的代码中使用提供程序并执行terraform init
- 它是否下载提供程序或插件?
3rd 方插件在哪里?是否与这样的第 3 方提供商相同?
terraform - 在 terraform 中使用 End of text string(EOT) 添加长内容会引发错误
我想使用本地提供程序使用 terraform 将内容添加到文件中。这是我正在使用的示例脚本
我收到以下错误 Expected the start of an expression, but found an invalid expression token.
。请指出可能是什么错误。
terraform - 使用 Terraform 验证时找不到所需的参数
我的 Terraform 目录结构类似于:
在bastion.tf中,我试图从variables.tf中调用一个变量,如下所示:
其中,eip = 10.x.x.x
设置在dev.tfvars中。
main.tf的配置如下:
在运行terraform validate时,它给了我一个错误 - The argument "eip" is required, but no definition was found。即使我尝试将 eip 提供给模块,例如:
尚未声明名为“eip”的输入变量。这个变量可以用变量“eip”{}块声明
我已经在variables.tfvariable "eip" {}
中定义了它从.tfvars 文件中获取值,但不知何故它不是。谁能建议我还能错过什么?
terraform - Terraform:声明结构化/类型化的本地或变量
我正在实现一个 Cloudflare Terraform 脚本,但在删除 zone_settings 的块时遇到问题:
设置块有大约 60 行,完全相等。我试图通过 foreach 来实现这个:
(完整代码:https ://gist.github.com/knyttl/ee10aa7d63adda866fe39151a9e015d9 )
但这Variables may not be used here.
在变量块中失败了。
所以我尝试了当地人:
(完整代码:https ://gist.github.com/knyttl/76ff39f3baf68df19dfbd05a37eb0ea5 )
但这以上面两条评论中的错误告终。
有没有办法做到这一点?
docker - 在 terraform 中读取文件并将其传递给 docker 容器时保留文件内容的缩进
我只是想在gce-uefi-images/cos-stable
. 使用上面的代码,上面的代码按预期开始。
ENVOY_CONFIG
但是,当容器启动时,换行符和缩进消失了。
该templatefile
功能正常工作并生成yaml
预期的文件。但是,容器内部ENVOY_CONFIG
会丢失所有缩进。
我尝试使用yamlencode
,但它也没有工作。
在环境变量中保留 yaml 文件内容(缩进和换行符)的正确方法是什么ENVOY_CONFIG
?
gitlab - 在 terraform 文件中使用 GitLab 环境变量
我在 GitLab 中有一个秘密存储为 env 变量:TF_VAR_DD_API_KEY
在我的main.tf
我正在做这样的事情:
这似乎不起作用。如何从 GitLabTF_DD_API_KEY
变量中获取值并在我的main.tf
?
谢谢