问题标签 [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.
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>
任何帮助将不胜感激,因为我真的遇到了障碍。
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}"
但我确实有一个特定的理由想要一一得到它们。
有人可以建议/帮助我吗?
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)
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:
amazon-web-services - Terraform - AWS EC2 IAM 角色
希望在 AWS 中使用 IAM 角色运行 Terraform,删除访问/共享密钥等。我做得对吗,感觉有点奇怪。
所以我有我的 aws_provider.tf
除非我真的给我运行 Terraform 的 EC2 实例,否则它不会起作用。
我是否在这里遗漏了什么,我在考虑 AWS 方面和 IAM 角色?Terraform 不应该能够在没有分配 EC2 实例的情况下承担 IAM 角色吗?我是否需要扮演另一个角色才能在角色之间切换?
还是应该这样?
谢谢
terraform - 如何保持 Terraform aws_security_group 的使用 DRY
我编写了一个简单的模块来预置一个变量 AZ 编号的 AWS VPC。它创建路由表、网关、路由等,但我在保持安全组部分干燥时遇到了麻烦,即在指定安全组时保持模块可重用。
这是我能得到的最接近的:
变量.tf:
主文件:
现在这很好,只要您想要为每个端口创建一个安全组 :) 我真正需要的是某种方式来调用ingress
变量中有值的次数staging_security_groups[THE SECURITY GROUP].from_port
(请原谅虚构的符号)。
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
为这个模块的实例化创建了一个单独的“主机环境”/。
- 我
terragrunt apply
在 VPC 环境目录下运行 - VPC created - 我
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
问题:
我在设置代码时出错,以便将主机环境配置为从已经存在的 VPC(terraform 状态文件)正确获取 VPC ID - 任何关于此处更改内容的建议将不胜感激。
看起来我确实设法获得了创建 VPC 的日期而不是它的 ID,因为代码令人困惑——有人知道为什么吗?
我没有使用社区模块 - 都是手工制作的。
编辑:作为对 Brandon Miller 的回应,这里还有更多内容。在我的 VPC 模块中,我有一个 outputs.tf,其中包含其他输出:
并且 vpc.tf 包含
由于这个 cfg 导致创建了一个 vpc,并且大多数参数<computed>
都是,而不是咨询不同的状态键)。
编辑 2:首先阅读所有@brendan-miller 的回答和以下评论。使用句点会导致问题,因为它会混淆 terraform(请参阅 Brendan 对以下规范格式的回答):
amazon-web-services - 通过 Terraform 在目标组中添加 ASG 实例
我有一个 Terraform 脚本,它创建一个启动配置、自动缩放组、一个 ALB、一个目标组和一个侦听器。使用自动缩放组启动实例。
如何在同一脚本中通过 Terraform 在目标组中添加新启动的实例?
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 图像?
amazon-web-services - terraform init & terraform plan 成功运行后,terraform apply 使用 S3 报告后端配置错误
我在我的 Linux 实例上运行 terraform,我得到了下面的恐惧。
这是 Terraform 配置文件。
在运行 terraform apply 之前,我设法terraform plan
成功运行。