问题标签 [terraform-provider-aws]

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

azure - 引用 Azure ACS Cluster Master VM 公共 IP?

我正在使用这个 repo在 Azure 上使用 acs-engine 创建一个 kubernetes 集群。

我想知道是否有人可以帮助我确定如何引用主 VM 的公共 IP 地址。

这将用于 ssh 到主 VM ( ssh user@public-ip),这很重要,因为我想运行 local-exec 配置程序来使用 Ansible 配置我的集群。

我不相信它是first_master_ip下面的main.tf(在 repo 的 variables.tf 上给出了一个值),尽管我也不知道如何引用这个 IP。

我尝试过的另一件事是使用 azure 命令行获取主虚拟机公共 IP 地址,但是我也没有成功,因为我不知道如何获取cluster-name将通过az acs kubernetes browse -g <resource-group-name> -n <cluster-name>

任何帮助将不胜感激,因为我真的遇到了障碍。

0 投票
1 回答
5180 浏览

amazon-ec2 - Terraform - 从 aws 实例资源输出实例 ID - 一次一个

我有以下资源来创建 2 个实例:

其中 count 的值为 2。

我想使用单独的输出资源为每个实例输出实例 ID,如下所示:

但是我不断收到以下错误: Resource 'aws_instance.prod_server' not found for variable 'aws_instance.prod_server.1.id'

我意识到我可以使用以下方法一次获取 ID: "${aws_instance.prod_server.*.id}"

但我确实有一个特定的理由想要一一得到它们。

有人可以建议/帮助我吗?

0 投票
2 回答
181 浏览

terraform - terraform 文件 (.tf) 中的“aws_eip”资源在哪里获取引用“aws_instance”资源中“id”属性的值?

在这个页面https://www.terraform.io/intro/getting-started/dependencies.html

什么是值,aws_instance.example.id因为我没有看到id为实例资源调用的属性(https://www.terraform.io/docs/providers/aws/d/instance.html

0 投票
1 回答
229 浏览

amazon-web-services - Terraform aws_spot_fleet_request iam_instance_profile

我从这里阅读了 Terraform 现场舰队示例用法。

“iam_instance_profile_arn”的意义是什么?它在示例 1 中的作用是什么?

在某些情况下,我收到错误“launch_specification.0: invalid or unknown key: tags”,而在其他情况下却没有,所以我认为它可能与 iam_profile 有关。

示例 1:

示例 2:

0 投票
1 回答
701 浏览

amazon-web-services - Terraform - AWS EC2 IAM 角色

希望在 AWS 中使用 IAM 角色运行 Terraform,删除访问/共享密钥等。我做得对吗,感觉有点奇怪。

所以我有我的 aws_provider.tf

除非我真的给我运行 Terraform 的 EC2 实例,否则它不会起作用。

我是否在这里遗漏了什么,我在考虑 AWS 方面和 IAM 角色?Terraform 不应该能够在没有分配 EC2 实例的情况下承担 IAM 角色吗?我是否需要扮演另一个角色才能在角色之间切换?

还是应该这样?

谢谢

0 投票
3 回答
5761 浏览

terraform - 如何保持 Terraform aws_security_group 的使用 DRY

我编写了一个简单的模块来预置一个变量 AZ 编号的 AWS VPC。它创建路由表、网关、路由等,但我在保持安全组部分干燥时遇到了麻烦,即在指定安全组时保持模块可重用。

这是我能得到的最接近的:

变量.tf:

主文件:

现在这很好,只要您想要为每个端口创建一个安全组 :) 我真正需要的是某种方式来调用ingress变量中有值的次数staging_security_groups[THE SECURITY GROUP].from_port(请原谅虚构的符号)。

0 投票
1 回答
452 浏览

amazon-web-services - Terragrunt v0.14.9、Terraform v0.11.7 从第二个环境读取 AWS VPC ID

我使用 Terragrunt 来编排非默认 AWS VPC 的创建。我有 S3/DynamoDB 状态管理,VPC 代码是一个模块。我已根据README.mdterraform.tfvars将“VPC 环境”代码签入第二个存储库。terragrunt

我创建了第二个模块,它最终将在这个 VPC 中创建主机,但现在只是为了输出它的 ID。我terraform.tfvars为这个模块的实例化创建了一个单独的“主机环境”/。

  1. terragrunt apply在 VPC 环境目录下运行 - VPC created
  2. terragrunt apply在主机环境目录中第二次运行 - 输出指令不起作用(没有错误,但不正确,见下文)。

这是有一天terragrunt apply-all在 VPC/hosts 环境目录的父目录中运行的前兆;我对文档的阅读建议使用terraform_remote_state数据源来公开 VPC ID,因此我data.tf在 hosts模块的文件中指定了这样的访问权限:

然后,在 hosts模块 outputs.tf中,我指定了一个输出来检查分配:

当我在上面运行 (2) 时,它退出时:

申请完成!资源:添加 0 个,更改 0 个,销毁 0 个。

输出:

mon_vpc = 2018-06-02 23:14:42.958848954 +0000 UTC

问题:

  1. 我在设置代码时出错,以便将主机环境配置为从已经存在的 VPC(terraform 状态文件)正确获取 VPC ID - 任何关于此处更改内容的建议将不胜感激。

  2. 看起来我确实设法获得了创建 VPC 的日期而不是它的 ID,因为代码令人困惑——有人知道为什么吗?

我没有使用社区模块 - 都是手工制作的。

编辑:作为对 Brandon Miller 的回应,这里还有更多内容。在我的 VPC 模块中,我有一个 outputs.tf,其中包含其他输出:

并且 vpc.tf 包含

由于这个 cfg 导致创建了一个 vpc,并且大多数参数<computed>都是,而不是咨询不同的状态键)。

编辑 2:首先阅读所有@brendan-miller 的回答和以下评论。使用句点会导致问题,因为它会混淆 terraform(请参阅 Brendan 对以下规范格式的回答):

0 投票
2 回答
7413 浏览

amazon-web-services - 通过 Terraform 在目标组中添加 ASG 实例

我有一个 Terraform 脚本,它创建一个启动配置、自动缩放组、一个 ALB、一个目标组和一个侦听器。使用自动缩放组启动实例。

如何在同一脚本中通过 Terraform 在目标组中添加新启动的实例?

0 投票
1 回答
2933 浏览

docker - 如何在 Terraform 中声明和引用 ECR 存储库而不损害其内容?

我正在构建一个 Terraform 配置以将一些容器部署到 AWS ECS。显然,我必须将 Docker 镜像推送到 ECR。我在 ECR 中创建了一个存储库并推送了图像。

现在我正在自动化。如果我aws_ecr_repository这样声明:

然后 Terraform 将管理它。我最终可以用类似的东西来引用它

在构建 ECS 任务定义的过程中。

我的印象是,当我terraform destroy作为开发周期的一部分运行时,Terraform 会删除这个存储库——或者当它有图像时会失败。这会很糟糕,因为terraform destroy这样要么永远不会完成,要么我必须清除 ECR 存储库才能成功完成该命令。

如何最好地引用已经存在但我似乎不希望 Terraform 管理的 ECR 存储库,因为 Terraform 可能会破坏存在于 Terraform 之外的数据,即发布 CI 作业上传的 Docker 图像?

0 投票
3 回答
5505 浏览

amazon-web-services - terraform init & terraform plan 成功运行后,terraform apply 使用 S3 报告后端配置错误

我在我的 Linux 实例上运行 terraform,我得到了下面的恐惧。

这是 Terraform 配置文件。

在运行 terraform apply 之前,我设法terraform plan成功运行。