问题标签 [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.
terraform - 我们可以更改子模块“.terraform/modules”中的某些内容吗?
当我运行 terraform plan 时,出现以下错误:
当我将它们修复.terraform/modules/main.tf
并variables.tf
归档时,计划成功,并且当我从 CLI 触发时它通过了。但是,当我从 UI 触发计划时实际推送代码时,它不起作用。
所以,当我这样做时terraform init --upgrade
。它恢复正常,我可以看到同样的问题。
你能帮我解决这个问题吗?谢谢!
amazon-web-services - 在许多 terraform 模块之间共享输入变量
我有两个具有相同输入变量的不同 terraform 模块,但名称和域除外。有没有办法共享输入变量?也许有一个外部文件或类似的东西?
这是我的模块
谢谢
terraform - Terraform:如何在单个资源块中提供多个 lambda 函数 zip 文件
1 个 lambda 函数的工作片段。Terraform 版本 0.14.9。
我是 terraform 的新手。我总共有 4 个 zip 格式的 lambda 函数。如何在 1 个资源块中提供所有这些。
我尝试了这个,但最终出现了错误。
terraform - terraform 如何确定何时下载模块?
我想使用 terraform 的 EKS 模块。
这工作正常。
我想要实现的是,如果模块已经在本地存在,则 terraform 不会下载该模块。我正在使用 terraform 变量TF_DATA_DIR
来设置 terraform 的数据目录。
当我运行terraform init
EKS 模块时,仍然从注册表中提取,即使该模块在本地存在。当我terraform init
第二次运行时,这不会发生。
输出:
这些文件总是被加载,"${SOME_DIR}/.terraform"
所以我希望它TF_DATA_DIR
能够按预期工作。
当模块已经存在时,如何防止 terraform 下载模块?我不想使用本地路径,我想使用缓存机制。
我正在使用 Terraform 版本 0.14.7
terraform - Terraform:获取模块名称以将其从路径注入到其他模块
我需要从路径中获取 terraform 父模块名称,然后将其作为变量传递给其他模块。可能吗?。示例:从模块child1,可以访问模块child2中的目录src/yaml
父模块:
Child1 模块:
Child2 模块:
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
terraform - 如何使用块构建 terraform 模块
我想构建一个语法如下的模块:
理想情况下,我希望能够以这种方式提供多种服务和功能:
使用变量我可以这样做:
但是,当我想提供更多服务时,我需要将它们放在一个列表中:
我没有找到用块构建模块的方法。原生资源有这个:
access_policy
以上。这是否可以通过这些块向模块提供参数?
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 文件用于模块?
terraform - Terraform - 在循环中的模块之间创建和传递文件
我的 TF 脚本正在创建 k8s 资源并基于template_file
.
然后我想将其传递给另一个模块(使用 GitLab 提供程序 - 将它们保存为 GitLab 变量)。
到目前为止,我只创建了一个 kubconfig,而且方法非常简单:
然后传递给 GitLab 模块:
并用作:
但是如何为多个文件实现相同的效果?
我看到这count
也适用于数据,所以我可以定义:
但随后output
不支持count
,并且我的“花式”强制循环解决方法似乎不起作用:
你知道如何处理这样一个话题吗?
terraform - 将值从 azure 资源导入到新的 terraform 脚本
我正在尝试创建单独的模块(git repos)以使用 terraform 创建多个 azure 资源。例如,我想创建 module-1,它将创建 aks 集群服务和默认节点池。我想创建单独的 module-2 来创建用户节点池。那么,我是否可以通过提供集群名称或任何其他标识符从模块 1 导入值,例如 aks 集群 ID、网络 ID 等?如果我使用“源”,我必须每次都给出值,并且所有集群的默认值并不总是相同。我不想硬编码 tf 文件中的 id。当然我会使用相同的状态文件。
因此,基本上在 terraform 中,可以从 terraform 中创建的另一个 azure 资源中获取值。
谢谢,桑托什