问题标签 [terraform]

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

amazon-web-services - 通过 Terraform 创建时如何使用默认 AWS VPC 资源

尝试学习将 Terraform (v 0.3.7) 与 Amazon Web Services 一起使用。

当我通过以下方式使用 Terraform 创建 VPC 时:

VPC 将有一个主路由表和一个自动创建的“默认”安全组(我假设由 AWS,而不是 Terraform);这些可以通过创建的 VPC 上的属性来识别:main_route_table_iddefault_security_group_id

在遵循本教程时,它讨论了创建您自己的默认安全组和路由表 - 它没有提及将要创建的默认安全组(即使您创建自己的路由表,默认创建的“主要”路由表也将保留坐在那里,没有子网或任何东西)。

我们不应该使用通过 VPC 创建的默认资源吗?尤其是路由表,不使用“主”路由表会不会有什么影响?

如果我应该使用默认资源,我该如何使用 Terraform?

我在 Terraform 文档中看不到有关这些默认资源的任何内容,如果我尝试覆盖它们(例如,通过告诉 Terraform 创建一个具有 name 的安全组default,我会收到错误消息)。

0 投票
1 回答
352 浏览

azure - 在 Azure 上部署集群的工具集

我正在使用 packer.io 将单个 VM 部署到 Azure。我项目的下一步是将 VM 集群部署到 Azure。在我看来,仅 Packer 是不够的(如果我错了,请纠正我)来协调集群的部署。所以,我需要其他东西来协调部署。因为它是一个集群,所以其中的每台机器都需要知道每台其他机器的 IP 地址(我的应用程序是一个分布式数据库。)我正在查看 terraform.io,但它的文档没有任何关于 Azure 的示例. 有什么资源可以开始吗?terraform 是我需要的吗?你会推荐任何其他工具吗?另一个复杂之处是我正在尝试为我的客户自动部署演示虚拟机。我目前的工作流程是,使用打包程序,创建一个虚拟机,安装我的数据库,创建必要的用户帐户,将某些暂存目录上传到 VM。然后我拍摄快照以获取我的图像。后来,这个映像由我的客户从 VMDepot 部署(到他们的 Azure 帐户)。同样,现在,这只是一个单机集群。稍后,这将需要一组至少四台机器。是否有更好的工作流程来完成此任务?

感谢您的时间。

0 投票
3 回答
4580 浏览

amazon-web-services - Terraform:将 aws_iam_role 与 aws_iam_policy 关联

通读文档并很难了解如何将 anaws_iam_roleaws_iam_policy. 显然有aws_iam_role_policy,但这仅允许为特定角色制定“内联策略”。

有什么建议么?

0 投票
1 回答
287 浏览

docker - Create a local end-to-end development environment

I am beginning to use terraform to control staging and production environments on various cloud providers (AWS for example). Is there a way to use terraform configuration files to create a local development environment for, say, a multi-tier application environment or do I have to maintain a different configuration via, say, vagrant for my development needs?

This may not be too difficult to do with two tools since most components are dockerized, but it would be nice to have a single configuration.

0 投票
1 回答
1844 浏览

json - 在 Go 中编组动态 JSON 字段标签

我正在尝试为Terraform 文件生成 JSON 。因为我(想我)想使用编组而不是滚动我自己的 JSON,所以我使用 Terraforms JSON 格式而不是“本机”TF 格式。

resource并且aws_instance是静态标识符,而web1在这种情况下是随机名称。web2此外,拥有and也不是不可想象的web3

然而问题是;如何使用 Go 的字段标签生成随机/可变 JSON 键?

我感觉答案是“你没有”。那我还有什么其他选择?

0 投票
4 回答
10312 浏览

amazon-web-services - Terraform 抛出“groupName 不能与参数子网一起使用”或“VPC 安全组不能用于非 VPC 启动”

当试图弄清楚如何aws_instance使用 AWS VPC 配置时,会发生以下错误:

或者

0 投票
0 回答
1965 浏览

python - 执行通过terraform作为文件传递给aws用户数据的python脚本

问题:我正在尝试将动态创建的 python 脚本传递给使用 terraform 创建的 AWS launch_config。该脚本出现在实例的用户数据中,但不执行。我不确定为什么我阅读的所有关于通过用户数据传递脚本的指南都说这应该有效。

我知道脚本会显示,因为我可以 curl aws 用户数据并且它会在那里,但它从未执行过。

我错过了什么?

动态创建的python:

整个脚本:

按照

我也对脚本进行了 base64 编码,EC2 实例加载了我的用户数据脚本,但没有运行它

但它仍然不起作用。

0 投票
2 回答
546 浏览

amazon-web-services - 使用 Terraform 在 AWS 上创建 HA NAT

在 AWS 中构建 HA NAT 的两种常见策略是:

  • “路由接管”,实例更新路由表以指向自身。
  • “ENI 附加”实例将 ENI 附加到自身,并且路由表设置为将默认路由指向 ENI。

这两种方法都涉及更新资源配置(即路由表或 ENI)的实例,这些实例要么由“心跳脚本”触发,要么由自动缩放组创建。

这适用于 CloudFormation,因为对堆栈的更新不会覆盖在此之后发生的这些更改。Terraform 并非如此。

Terraform 将检测到任一资源的配置已更改,并将尝试通过删除在 Terraform 之外发生的任何更改来“修复配置”。

我明白了这里的理念,但它阻止了使用通用策略部署 HA NAT。

那么,有没有人知道如何在 Terraform 的运作范围内完成 HA NAT 解决方案?

谢谢,乔

0 投票
2 回答
1760 浏览

shell - Terraform `local-exec` 设置本地别名

中创建 AWS 实例时,我正在尝试设置一个别名以快速 ssh 进入新创建的主机。我通过运行来做到这一点

当我看到此执行的输出时:

好像没问题,但是没有设置别名。这可能是命令运行的方式将它包装在一个新的范围内,而不是当前的 shell 之一?如果我将命令按原样复制粘贴到控制台,则别名设置得很好。

有解决方法吗?

我正在运行 terraform 一个 MacOS X Mountain Lion 的终端。

0 投票
1 回答
1358 浏览

amazon-web-services - VPC 内的 Terraform Spot 实例

我正在尝试使用 Terraform 在 VPC 内启动一个现场实例。

我有一个工作aws_instance设置,只是将其更改为aws_spot_instance_request,但我总是收到此错误:

我的.tf文件如下所示:

我不明白为什么它不工作......支持所有参数的文档站,所以,我只是将工作更改为(加上价格)......我做错了什么吗?spot_instance_requestaws_instanceaws_instancespot_instance_request

我最初在Terraform repo中将此作为问题打开,但没有人回复我。