问题标签 [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 投票
2 回答
663 浏览

terraform - 如果我不想使用本地路径,如何在模块中指定“源”

我有两个存储库(由于我的管道设置,它必须是两个),一个存储库包含创建 S3 存储桶所需的 terraform 脚本(非常简单),另一个存储库包含后端设置,当我在本地测试时,我可以使用以下命令在第一个 repo 中下载模型:

这将通过运行“terraform apply”为我创建 s3 存储桶。

但是现在如果我不想使用这个本地路径../../the_first_repo_name/terraform,我需要 Concourse 管道为我应用 terraform,我该如何修改这个本地路径,以便 Concourse 可以找到 terraform 脚本并下载它?

我看了一下这个页面:https ://www.terraform.io/docs/modules/sources.html ,它说我也可以指定一个github url,但它不起作用,因为我的terraform代码没有合并到还没有开发分支,而且似乎无法识别代码,我现在该怎么办?希望这是有道理的,谢谢。

0 投票
0 回答
69 浏览

terraform - Terraform 0.12 中对象的动态资源

我想用下一种方式调用 terraform 模块:

我创建的角色模块定义是:

结果我想看到正确生成的 4 个动作(每个数据库定义了角色 2):

我收到错误:给定的键未标识此集合值中的元素。我在模块动态资源中做错了什么?谢谢

0 投票
1 回答
2501 浏览

terraform - Terraform 错误:“cluster_identifier”rds_cluster 中只允许使用小写字母数字字符和连字符

详细的错误是:

从 terraform 创建 rds_cluster 时出现上述错误。我的 main.tf 文件有以下代码:

variable.tf 文件是:

调用这个“rds_cluster”的模块文件是:

注意事项:

  1. 我正在使用 terraform 0.14
  2. 当我执行 terraform validate 时,我得到“成功!配置有效。”
  3. 但是,当我执行 terraform plan 时,出现上述错误
0 投票
1 回答
2195 浏览

amazon-web-services - terraform 将现有 AWS 资源导入模块

我有一个已经准备好 ECR 和 IAM 的 AWS 账户。我现在正在使用 terraform 模块创建一个新环境。但我找不到将现有 IAM 和 ECR 资源导入我的模块的方法。当我运行命令terraform import aws_ecr_repository.c2m_an c2m_an时,我收到一个错误

我的 ECR 模块定义如下:

在我main.tf的环境文件夹中的文件中,我的模块定义如下:

0 投票
1 回答
40 浏览

terraform - 用于依赖 argumnets 的单个 terraform 模块

在这里,我一直在为现有的 terraform 脚本实现 terraform 模块。我在与 security_group_rules 的参数交互时遇到了一个问题。

问题是,在aws_security_group_rule中,我们有两个相互不兼容的参数,即source_security_group_idcidr_block 。我的意思是当我们使用其中一个时,我们不能使用另一个。

这是我的模块。

主文件

变量.tf

用法

sg.tf

在此,正在创建前两个规则,最后一个规则由于无效的 cidr 块而失败。

但是,我知道这里的问题,如果有人帮助我创建可以在source_security_group_idcidr_block上工作的更灵活的模块,那就太好了,这样如果一个被使用,另一个应该会失明。

0 投票
0 回答
56 浏览

amazon-s3 - 如何查看创建多个资源的 terraform 模块的价值?

我正在使用 terraform 模块创建 s3 存储桶,并且我继承的代码使用存储桶名称列表作为变量,并且本质上循环通过 s3_bucket_names 变量在列表中创建存储桶 for_each 名称。

当我需要从这些创建的存储桶之一调用 id 以在特定存储桶上设置 s3_notification_event 时,就会出现问题。我知道如果这是一个存储桶,或者每个存储桶都使用自己的模块资源单独调用,例如,我可以使用 module.aws_s3_bucket.data_bucket.id 输出调用返回单个 id。

我知道我可以重写脚本并单独调用模块,这可以解决问题,但是有人知道在循环单个模块时如何返回特定资源的值吗?

以供参考:

感谢任何人可以提供的任何建议/见解。

0 投票
0 回答
116 浏览

terraform - 如何知道使用了哪个 Terraform 模块版本?

有没有办法获得正在获得或使用的模块的确切版本?

我使用 ~> 0.0.5 之类的版本来使用模块的地方很少 - 很高兴知道使用了什么。

当我尝试输出整个输出块时 - 它显示模块中发布的所有输出(不是模块的属性或元数据)

0 投票
1 回答
116 浏览

azure - terraform 模块块中的 for_each 返回 - “for_each”参数值不合适

我想在模块块中使用计数,但由于不支持我试图用 for 循环编写 for_each 但它给出了"for_each" argument value is unsuitable错误。

我无法将计数传递给内部模块,因为它会弄乱我的输出格式。有人可以指导我如何正确调用 for_each。

主文件

上午/test.tf

0 投票
2 回答
7833 浏览

terraform - Conditionally create a single module in Terraform

I have been trying to conditionally use a module from the root module, so that for certain environments this module is not created. Many people claim that by setting the count in the module to either 0 or 1 using a conditional does the trick.

However, this changes the type of conditionally_used_module: instead of an object (or map) we will have a list (or tuple) containing a single object. Is there another way to achieve this, that does not imply changing the type of the module?

0 投票
1 回答
566 浏览

terraform - 为从 terraform 模块创建的每个子网重命名私有子网“名称”属性

我使用注册表中的 terraform vpc 模块来创建 vpc 和子网,如下所示:

如您所见,我有 2 个带有标签“nprod-net”的私有子网,但我想用不同的名称命名每个私有子网,例如“nprod-net-app-1a”和“nprod-net-vpce-1a”。任何帮助,将不胜感激。