问题标签 [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.

0 投票
1 回答
447 浏览

terraform - 重用配置在 Terraform 中创建类似的资源

我有下面的 TF 文件,它将创建一个函数 - FirstFunction。这完美地工作。

在文件中,看到用****括起来的部分,需要更改以创建SecondFunction,ThirdFunction等...

我现在的方法是创建多个 TF 文件,复制相同的代码并更改 ** 中包含的部分。

我通读了模块系统,但了解模块系统的限制是我无法引用在同一 TF 根模块中创建的其他组件,如下所示例如在 TF 文件中,我将位置称为 location = azurerm_resource_group.resourcegroupX .location 如果我将其作为一个模块进行,则该位置应称为 location = var.location_name 其中 location_name 应定义为变量。我不能引用使用相同根模块创建的组件。

您能否提出一个解决方案,让我可以根据类似的代码创建多个组件?请注意,在上面的示例中,我在单个 TF 文件中创建了 2 个资源,并且它们都是相关的。

0 投票
1 回答
102 浏览

terraform - Terraform 模块覆盖问题。模块每次更新值

我有一个特定模块将再次运行的用例。用例如下:

我创建了一个名为 google_compute_firewall 的资源。然后我通过模块调用了这个资源。该模块将从 yaml 文件中获取与防火墙相关的输入。第一次运行该模块时,它会创建一个 FW,但是当我尝试使用另一个 FW 配置运行同一个模块时,它将删除之前创建的 FW。

这意味着每次我想创建防火墙时,我都需要创建一个新模块。因此,对于 500 个请求,将有 500 个模块,这是没有意义的。我可以探索更好的选择吗?

先感谢您!!

0 投票
2 回答
1356 浏览

azure - 尝试使用 azure terraform 在应用程序网关上附加 SSL 证书

我正在尝试从本地机器传递 PFX 证书来编码 azure terraform,但是当我在 terraform 中应用此方法时,它显示一个错误证书或密码无效。我已经测试了证书和密码,但它工作正常。我在下面有附件代码和错误详细信息,谢谢-Onkar

以下是我面临的错误

更新

根据您的指示进行更改后发生以下错误 根据您的指示进行更改后发生以下错误

0 投票
1 回答
444 浏览

terraform - Terraform 模板文件功能 - ssh 配置或 ansible 主机文件创建

是否可以使用 terraform templatefile 函数创建 ssh 配置或 ansible 主机文件?使用 Terraform 0.12。

地形定义:

我的问题是我不知道模板文件应该是什么样子,尤其是插值或指令..

ansible_hosts.tpl

ssh_config.tpl

ansible hosts 文件和 ssh 配置应如下所示:

ansible_hosts

ssh_config

0 投票
1 回答
371 浏览

terraform - 了解 terraform 提供程序和插件

有没有更简单的方法来理解它们?当我在我的代码中使用提供程序并执行terraform init- 它是否下载提供程序或插件?

3rd 方插件在哪里?是否与这样的第 3 方提供商相同?

0 投票
1 回答
876 浏览

terraform - 在 terraform 中使用 End of text string(EOT) 添加长内容会引发错误

我想使用本地提供程序使用 terraform 将内容添加到文件中。这是我正在使用的示例脚本

我收到以下错误 Expected the start of an expression, but found an invalid expression token.。请指出可能是什么错误。

0 投票
1 回答
1319 浏览

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 文件中获取值,但不知何故它不是。谁能建议我还能错过什么?

0 投票
1 回答
115 浏览

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 )

但这以上面两条评论中的错误告终。

有没有办法做到这一点?

0 投票
0 回答
188 浏览

docker - 在 terraform 中读取文件并将其传递给 docker 容器时保留文件内容的缩进

我只是想在gce-uefi-images/cos-stable. 使用上面的代码,上面的代码按预期开始。

ENVOY_CONFIG但是,当容器启动时,换行符和缩进消失了。

templatefile功能正常工作并生成yaml预期的文件。但是,容器内部ENVOY_CONFIG会丢失所有缩进。

我尝试使用yamlencode,但它也没有工作。

在环境变量中保留 yaml 文件内容(缩进和换行符)的正确方法是什么ENVOY_CONFIG

0 投票
1 回答
1301 浏览

gitlab - 在 terraform 文件中使用 GitLab 环境变量

我在 GitLab 中有一个秘密存储为 env 变量:TF_VAR_DD_API_KEY

在我的main.tf我正在做这样的事情:

这似乎不起作用。如何从 GitLabTF_DD_API_KEY变量中获取值并在我的main.tf?

谢谢