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

continuous-integration - 使用 Terraform 时的最佳实践

我正在将我们的基础设施换成 terraform。实际管理 terraform 文件和状态的最佳实践是什么?我意识到它是作为代码的基础设施,我会将我的 .tf 文件提交到 git 中,但我是否也提交 tfstate ?它应该位于 S3 之类的地方吗?我最终希望 CI 能够管理所有这些,但这太过分了,需要我找出文件的移动部分。

我真的只是想看看人们如何在生产中实际使用这种类型的东西

0 投票
1 回答
1145 浏览

vsphere - 使用 Terraform 迁移现有基础架构和扩展

我们计划在为我们的云服务提供动力的 DC 中自动创建和删除虚拟机。该服务使得每个新客户都能获得专用的虚拟机(至少 3 个)——因此虚拟机的数量不断增长。我们已经在 ESXi 上运行了大约 2000 个虚拟机。所以我们现在在采用 terraform 之前有两个问题需要解决——

  1. 我们如何迁移现有的 VM 以由 Terraform 管理(或者我们应该如何)? 可以编写脚本生成资源规范,但验证计划以确保不受影响将是一项挑战——考虑到 VM 的数量以及它们都是 LIVE 的事实,这给工程师带来了额外的压力。

  2. 随着 VM 数量的增加,磁盘上 .tf 文件的数量将不断增加。我们可以将多个虚拟机组合到一个文件中,但这会使以编程方式删除单个虚拟机有点棘手。将文件拆分到多个目录是我能想到的简单解决方法,但是...... 有没有更好的方法来处理 terraform 的规模?

我找不到任何讨论这些问题的博客,因此在这里从实践经验中寻求一些建议。

0 投票
0 回答
239 浏览

amazon-web-services - AWS - Is it possible to create subnet specific ELB Listeners?

I would like to create an ELB the spans three subnets and then to somehow configure three listeners that will forward ELB traffic to only instances on each subnet. Is there a way to do this without layering ELBs (1 ELB -> 3 subnet specific ELBs -> instances)?

To be more descriptive, I want 3 RabbitMQ clusters in 3 different subnets. Messages should be able to be arbitrarily published to any of the RMQ instances through an ELB. However, I would also like to be able to access the admin web consoles for each individual cluster through the ELB where the cluster is specified by using a different ELB port. In the [disfavored] multi-tier ELB configuration I described above, the main ELB would be used to publish messages and then the 3 subnet specific ELBs would be accessed when viewing the admin console.

Here is an example Terraform ELB resource that I'm currently using that has one listener that will forward to any instance in any of the subnets but I would like to have 3 listeners with 3 different lb_ports that forward to only instances on one of the 3 subnets:

0 投票
1 回答
993 浏览

amazon-web-services - 使用 Terraform 启动 CloudFormationTemplate

如何从 Terraform 启动 CloudFormationTemplate。Terraform 创建了 VPC 和 SecurityGroups。如何将 vpcID 和 SecurityGroupID 传入 CFT。我已经搜索但找不到任何相同的链接。RTFM 在这里没有任何帮助。

0 投票
2 回答
372 浏览

jenkins - 詹金斯从工件加载文件时出错

我创建了一个构建管道,它从上游项目 A 中获取工件并将其复制到下游项目 B 中。我的系统已存档所有构建工件,但出于某种原因,Jenkins 没有将这些文件加载​​到它正在运行构建的目录中. 当我尝试运行我的 shell 命令时,我不断收到以下错误消息。我在 vagrant 上运行 Jenkins,所以我不确定这是否有任何关系,但很好奇是否有人遇到过这个问题。

0 投票
1 回答
531 浏览

openstack - 在openstack中启动服务器时出现terraform错误

使用 Terraform 在 Openstack 中启动服务器时出现以下错误:

错误刷新状态:发生 1 个错误:

  • 寻找值开头的无效字符“<”
0 投票
6 回答
11545 浏览

amazon-web-services - 注册错误:NoCredentialProviders:链 ECS 代理错误中没有有效的提供者

我正在尝试使用 EC2 容器服务。我使用 terraform 来创建它。我已经定义了一个 ecs 集群、自动缩放组、启动配置。一切似乎都奏效了。除了一件事。ec2 实例正在创建,但它们没有在集群中注册,集群只是说没有可用的实例。

在创建实例的 ecs 代理日志中,我发现日志被一个错误淹没:

注册错误:NoCredentialProviders:链中没有有效的提供者

ec2 实例是使用适当的角色 ecs_role 创建的。此角色有两个策略,其中一个是以下策略,例如所需的文档:

我正在使用 ami ami-6ff4bd05。最新的地形。

0 投票
1 回答
56 浏览

amazon-web-services - 为 EC2 实例创建签名证书时如何防止循环依赖?

我正在使用terraform创建一个 EC2 实例,该实例将用作 docker 主机。这意味着我需要创建加密密钥以通过 Internet 安全地连接到它。创建密钥时,您需要指定要连接的 IP 地址和主机名。在 terraform 中,这些值可以动态分配,但这很容易导致循环依赖情况。让我们举个例子:

remote-exec供应商中,我们需要从资源中写入值,而tls_self_signed_cert资源又需要来自aws_instance资源的值。

我该如何克服这种情况?

0 投票
1 回答
802 浏览

amazon-web-services - 使用 IP 地址和端口号创建 Route53 子域

我们正在使用 route53 AWS 服务从我们的托管区域创建一个子域。我们目前有一个实例在使用弹性 IP 的亚马逊服务器上运行。一旦我们创建了 A 类型的 route53 记录,我们就只能分配实例的弹性 IP。这将映射到 apache 默认页面,因为端口 80 用作具有给定 IP 地址的默认端口。

在我们的场景中,我们有多个服务在同一个实例上运行,并且我们希望使用在端口 8153 上运行的服务。我们的要求是将此端口自动映射到我们的子域。因此,当我们输入“ci.yyyyy.com”时,它会自动映射到在 8153 端口上运行的服务。所有这些步骤都应该使用 terraform 脚本来完成。

有没有办法将IP地址和端口号与子域映射?任何建议和意见将不胜感激。

谢谢

0 投票
2 回答
1195 浏览

amazon-web-services - Terraform 初始状态文件创建

有没有办法从现有的基础设施创建 terraform 状态文件。例如,AWS 账户附带一些已经到位的服务(例如:默认 VPC)。

但是 terraform 似乎只知道它创建的资源。所以,

  1. 将现有 AWS 基础设施迁移到 Terraform 代码的最佳方法是什么
  2. 是否可以手动添加资源并手动修改状态文件(不良影响?)

更新

Terraform0.7.0支持导入单个资源。