问题标签 [terraform-modules]

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 回答
68 浏览

terraform - 我们可以更改子模块“.terraform/modules”中的某些内容吗?

当我运行 terraform plan 时,出现以下错误:

当我将它们修复.terraform/modules/main.tfvariables.tf归档时,计划成功,并且当我从 CLI 触发时它通过了。但是,当我从 UI 触发计划时实际推送代码时,它不起作用。

所以,当我这样做时terraform init --upgrade。它恢复正常,我可以看到同样的问题。

你能帮我解决这个问题吗?谢谢!

0 投票
1 回答
54 浏览

amazon-web-services - 在许多 terraform 模块之间共享输入变量

我有两个具有相同输入变量的不同 terraform 模块,但名称和域除外。有没有办法共享输入变量?也许有一个外部文件或类似的东西?

这是我的模块

谢谢

0 投票
1 回答
257 浏览

terraform - Terraform:如何在单个资源块中提供多个 lambda 函数 zip 文件

1 个 lambda 函数的工作片段。Terraform 版本 0.14.9。

我是 terraform 的新手。我总共有 4 个 zip 格式的 lambda 函数。如何在 1 个资源块中提供所有这些。

我尝试了这个,但最终出现了错误。

0 投票
1 回答
64 浏览

terraform - terraform 如何确定何时下载模块?

我想使用 terraform 的 EKS 模块。

这工作正常。

我想要实现的是,如果模块已经在本地存在,则 terraform 不会下载该模块。我正在使用 terraform 变量TF_DATA_DIR来设置 terraform 的数据目录。

当我运行terraform initEKS 模块时,仍然从注册表中提取,即使该模块在本地存在。当我terraform init第二次运行时,这不会发生。

输出:

这些文件总是被加载,"${SOME_DIR}/.terraform"所以我希望它TF_DATA_DIR能够按预期工作。

当模块已经存在时,如何防止 terraform 下载模块?我不想使用本地路径,我想使用缓存机制。

我正在使用 Terraform 版本 0.14.7

0 投票
1 回答
145 浏览

terraform - Terraform:获取模块名称以将其从路径注入到其他模块

我需要从路径中获取 terraform 父模块名称,然后将其作为变量传递给其他模块。可能吗?。示例:从模块child1,可以访问模块child2中的目录src/yaml

父模块:

Child1 模块:

Child2 模块:

0 投票
0 回答
69 浏览

terraform - 如何从模块中引用 main.tf 中的资源值

我正在尝试学习 terraform 模块的基础知识,这就是我在 terraform 中创建的资源、网络和计算模块,现在想将 vm_id 的输出传递给站点恢复模块,这是我目前正在使用的文件。

这是我目前正在关注的目录结构,

在 main.tf 中,我创建 aws_vpc 资源,这是我的实例模块的输入 下面的 main.tf 工作正常,我在 terraform 模块块中明确定义值

但是,当我尝试将这些值移动到“terraform.tfvars”时,我的 terrafom 计划无法加载 vpc id 所以下面的 main.tf 无法从同一个 main.tf 中查找 vpc id

我不太明白为什么第二种方法不起作用

---编辑1---所以这是我在运行有问题的main.tf terraform plan 或应用时得到的结果-由于某种原因,它无法检索在同一main.tf 中创建的vpc id

这是我的变量.tf

这是我的 terraform.tfvars

0 投票
1 回答
66 浏览

terraform - 如何使用块构建 terraform 模块

我想构建一个语法如下的模块:

理想情况下,我希望能够以这种方式提供多种服务和功能:

使用变量我可以这样做:

但是,当我想提供更多服务时,我需要将它们放在一个列表中:

我没有找到用块构建模块的方法。原生资源有这个:

access_policy以上。这是否可以通过这些块向模块提供参数?

0 投票
0 回答
58 浏览

amazon-s3 - Terraform 模块源:S3 源不提取 Terraform Cloud 中的最新文件

我有一个 terraform 模块,它作为 zip 文件存储在 S3 上。此模块/zip 文件会定期重新构建和更新。

在我的主要 terraform 项目中,我使用 S3 源引用此模块:

我遇到的问题是,在最初部署之后,很难让 terraform cloud 部署最新的 zip 文件。它似乎继续使用来自 S3 的 zip 文件的缓存版本。

部署是使用 github 操作完成的,我确实尝试将命令添加terraform get -update到构建步骤以下载模块更新。

此命令在本地运行良好,但是在使用 terraform cloud 时无法部署源自 S3 的最新模块。

我还扫描了 terraform 文档中有关如何taint模块源的任何提及,但我没有找到并提及它,所以我假设模块源不能被污染。

我发现始终使用来自 S3 的最新 zip 文件的唯一方法是从主 terraform 项目中删除模块定义,部署它,重新添加模块并再次部署它。

这是一个手动且耗时的过程。

是否有更好的流程来确保 terraform 云始终使用(或重新下载)来自 S3 的最新 zip 文件用于模块?

0 投票
1 回答
157 浏览

terraform - Terraform - 在循环中的模块之间创建和传递文件

我的 TF 脚本正在创建 k8s 资源并基于template_file.
然后我想将其传递给另一个模块(使用 GitLab 提供程序 - 将它们保存为 GitLab 变量)。

到目前为止,我只创建了一个 kubconfig,而且方法非常简单:

然后传递给 GitLab 模块:

并用作:

但是如何为多个文件实现相同的效果?

我看到这count也适用于数据,所以我可以定义:

但随后output不支持count,并且我的“花式”强制循环解决方法似乎不起作用:

你知道如何处理这样一个话题吗?

0 投票
1 回答
27 浏览

terraform - 将值从 azure 资源导入到新的 terraform 脚本

我正在尝试创建单独的模块(git repos)以使用 terraform 创建多个 azure 资源。例如,我想创建 module-1,它将创建 aks 集群服务和默认节点池。我想创建单独的 module-2 来创建用户节点池。那么,我是否可以通过提供集群名称或任何其他标识符从模块 1 导入值,例如 aks 集群 ID、网络 ID 等?如果我使用“源”,我必须每次都给出值,并且所有集群的默认值并不总是相同。我不想硬编码 tf 文件中的 id。当然我会使用相同的状态文件。

因此,基本上在 terraform 中,可以从 terraform 中创建的另一个 azure 资源中获取值。

谢谢,桑托什