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

amazon-ec2 - Terraform - 使用实例配置文件启动 EC2 实例时遇到时间问题

我正在使用 Terraform 创建我的 AWS 基础设施。

我有一个模块,它创建一个“aws_iam_role”、一个“aws_iam_role_policy”和一个“aws_iam_instance_profile”,然后使用该 aws_iam_instance_profile 启动一个 EC2 实例。

“terraform plan”按预期工作,但使用“terraform apply”我一直收到此错误:

如果我立即重新运行“terraform apply”,它会毫无问题地启动 EC2 实例。如果我运行“地形图”,它确实表明该实例依赖于配置文件。

由于第二个“应用”是成功的,这意味着 instance_policy 和它所需要的一切都被正确地创建了,不是吗?

我试过添加一个“depends_on”,但没有帮助,但由于图表已经显示了依赖关系,我不确定这是要走的路。

有人有这个问题吗?

0 投票
1 回答
2047 浏览

amazon-ec2 - cloud-init 未执行用户数据

在由 terraform 启动后,我正在尝试获取一个 Ubuntu 云映像(特别是 ami-311a1a5b)来引导 docker。为此,我有以下配置:

实例启动后,没有安装 docker,似乎还没有应用云配置。云配置如下所示:

如果我查询用户数据,它似乎在那里:

我的理解是它应该被执行,有没有理由不执行?

0 投票
5 回答
27371 浏览

amazon-web-services - 未找到 Terraform AWS 凭证文件

在阅读 Terraform 的文档时,它说有 3 种查找 AWS 凭证的选项:

  1. 静态凭证(嵌入在源文件中)
  2. 环境变量。
  3. 从 AWS 凭证文件

我试图让我的设置只使用凭证文件。我已经检查了环境变量是否已清除,并且我已将 Terraform 中的相关变量留空。

当我这样做并运行“Terraform Plan”时,我得到了错误:

未找到 AWS Provider 的有效凭证源。

我什至尝试将凭据文件的位置添加到我的提供程序块中,但这也无济于事:

让 Terraform 读取此文件并且不需要环境变量,我是否缺少一些东西?

0 投票
9 回答
25704 浏览

terraform - Terraform (Hashicorp) 的不同环境

我一直在使用 Terraform 来构建我的 AWS 堆栈并且一直很喜欢它。如果要在商业环境中使用,则需要将配置重新用于不同的环境(例如 QA、STAGING、PROD)。

我怎么能做到这一点?我是否需要创建一个包装脚本来调用 terraform 的 cli,同时在每个环境中传递不同的状态文件,如下所示?我想知道 Terraform 是否提供了更原生的解决方案。

0 投票
2 回答
482 浏览

amazon-ec2 - 使用 Terraform 进行配置时,代码如何获取对机器 ID 的引用(例如数据库机器地址)

假设我正在使用 Terraform 在 AWS 中预置两台机器:

  • 运行 NodeJS 的 EC2 机器
  • 一个 RDS 实例

NodeJS代码如何获取RDS实例的地址?

0 投票
1 回答
1063 浏览

amazon-ec2 - 使用 terraform 将应用程序部署到 AWS EC2 实例

我需要使用 terraform 将我的 Java 应用程序部署到 AWS EC2 实例。这里的问题是,我们不应该使用 *.pem 文件来部署应用程序

我尝试使用 terraform 创建 ELB 并关联实例。我可以使用 ssh 和 pem 文件将应用程序部署到 ec2 实例私有 IP。但是我们不应该使用 *.pem 或 *.ppk 文件,因为它不允许在生产服务器中使用。

我尝试将 chef 与 terraform 一起使用,但这也需要 *.pem 才能连接到 AWS 实例。

请让我知道如何在不使用 pem 文件的情况下使用 terraform 部署应用程序的详细步骤/建议。

0 投票
1 回答
2191 浏览

amazon-web-services - 如何使用 Terraform 在 Amazon VPC 中创建通配符 dns 记录以指向服务发现服务器?

我有一个带有堡垒和服务发现路由器 ( Consul ) 的Amazon VPC,我用它来将流量从我公司的 Intranet 路由到 VPC。

现在我正在 VPC ( Webdriver ) 中运行需要从 docker swarm 主机查找新注册服务的作业。

我想从 VPC 指向服务发现服务器。

我想使用Terraform创建这个dns 通配符条目

这是我第一次尝试它 - 但我觉得缺少一些东西:

我的问题是:如何使用 Terraform 在 Amazon VPC 中创建通配符 dns 记录以指向服务发现服务器?

0 投票
1 回答
3747 浏览

github - Terraform - 将变量传递给“源”参数

我以模块化方式使用 Terraform 来构建我的基础架构。我通过拥有一个调用不同模块的配置文件来做到这一点。我想传递一个基础结构变量,该变量获取应用程序应该构建的 Github 存储库的标记版本。最重要的是,我试图弄清楚如何在配置文件的“源”变量中连接字符串。

我希望它编译并且源看起来像这样(例如):git :: https://github.com/ORG/REPONAME.git?ref=v1

有人对如何使这项工作有任何想法吗?

谢谢,克伦

0 投票
3 回答
3806 浏览

amazon-web-services - 如何使用 Terraform 部署和重新部署应用程序?

我正在研究 Terraform 以及如何使用它来设置 AWS 环境。到目前为止,我有用于设置具有 3 个公共子网、3 个私有子网、一个 Internet 网关和 3 个 Nat 网关的 VPC 的脚本。但是,我对如何在私有子网中部署和重新部署应用程序感到困惑?

在我的场景中,我们使用 Spring Boot 构建微服务。我们的想法是转移到一个状态,我们可以将弹性负载均衡器连接到公共子网,并将我们的应用程序托管在私有子网中的自动缩放组中。但是,我找不到任何关于 Terraform 的好的教程来向您展示如何以可以从 Jenkins 重新部署应用程序的方式执行此操作。

到目前为止,我已经阅读了有关 Opsworks 和 Code Deploy 的信息,那么我是否需要使用 Terraform 来设置这些资源,然后触发部署脚本将工件发送到 S3,然后重新部署?

0 投票
3 回答
8722 浏览

bash - 如何自动将打包程序输出 ami id 链接到 terraform 变量?

我正在使用带有 ansible provisioner 的 packer 来构建一个 ami,并使用 terraform 以该 ami 作为源来设置基础设施 - 有点类似于这篇文章: http: //www.paulstack.co.uk/blog/2016/01/ 02/构建-一个-elasticsearch-cluster-in-aws-with-packer-and-terraform

当命令packer build pack.json成功完成时,我得到以下格式的输出 ami id:

在我的 terraform 变量variables.tf中,我需要指定源 ami id、区域等。这里的问题是我不想手动或多次指定它们。对于区域(我事先知道)这很容易,因为我可以在两种情况下使用环境变量,但是输出 ami 呢?是否有一种内置的方式来链接这些产品或一些不那么老套的方法来做到这一点?

编辑:对于任何可能感兴趣的人来说,Hacky 方法。在此解决方案中,我grep从打包程序输出中获取 aws 区域和 ami,并在 perl 中使用正则表达式将结果写入terraform.tfvars文件: