问题标签 [terraform-cloud]

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

terraform-cloud - Terraform Cloud:如何使用 API 下载 .tfstate 文件?

我已经使用 Terraform Cloud 部署了 terraform 脚本。在“状态”选项卡中,我可以看到我的 VM 机器的所有数据。对于我的管道,我需要下载 sv-xxxx.tfstate 文件以获取 VM IP。我的问题是如何使用 API 下载此文件?我查看了文档,但找不到任何提示。

0 投票
1 回答
283 浏览

terraform - 使用多个服务主体的 Terraform 身份验证多订阅

我希望我的 terraform 脚本能够使用多个服务主体对多个 azure 订阅进行身份验证。

这是我的想法:

  • 创建服务主体(应用注册)。
  • 在 azure 容器实例中部署 terraform 脚本
  • 将“贡献者”角色分配给我的订阅服务主体 (x)
  • 当我想在此订阅中创建资源时,使用环境变量配置 terraform 脚本以选择正确的凭据。

这个对吗?

使用 terraform cloud 时,您是否有更安全的方式对多个订阅进行身份验证?(理想情况下没有client_secret)

0 投票
0 回答
252 浏览

gitlab - Terraform 云 + CICD

我正在努力让 Terraform Cloud 按照我的意愿远程工作。

我有以下工作(更改这些不是一个选项):

  • GitLab 存储库中的基础架构代码 (Terraform)
  • BitBucket 存储库中的应用程序代码
  • CICD 使用 BitBucket 管道

Terraform Cloud 用于运行计划和应用。目前手动。我希望能够运行 terraform 计划并从 CICD 申请。

terraform.tf的应用程序仓库的根目录中有一个文件。它将 Terraform Cloud 定义为我的后端并提供一个令牌。

我的 bitbucket 管道是这样的:

当我运行此管道时,Terraform 期望 terraform 配置文件存在,但它们存储在 GitLab 存储库中。Terraform 工作区“testworkspace”连接到 GitLab 存储库。我希望当我运行terraform plan它时,它会远程运行工作区计划,就像我通过 UI 单击它一样。

您对以上内容有什么建议吗?

0 投票
0 回答
47 浏览

terraform - Terraform Cloud 工作空间结构

我对 Terraform 和 Terraform Cloud 很陌生,我正在寻找构建 Terraform Cloud 工作区的最佳方式。

用例:相对简单的webapp、RDS、ECS/Fargate等

我目前正在使用以下工作区进行评估:

  1. ECR
  2. 数据库
  3. AppCore(ECS 集群、ALB 等)
  4. ECS 服务/任务

好处:小爆炸半径,逻辑块,更新到新的 ECS 任务定义时可以使用 Terraform。

我以为我在 Terraforms 网站上找到了一个文档,该文档建议破坏与此类似的工作区是他们推荐的方法,但目前我似乎无法再次找到它。

这个好吗?坏的?我听说将所有基础设施放在一个工作区中可能会让事情变得很痛苦。

任何想法,想法或建议都非常感谢!

0 投票
1 回答
518 浏览

kubernetes - terraform plan 使用 terraform 云后端在每次运行时重新创建资源

我遇到了一个问题,即terraform plan重新创建不需要每次运行都重新创建的资源。这是一个问题,因为某些步骤取决于可用的资源,并且由于每次运行都会重新创建它们,因此脚本无法完成。

我的设置是 Github Actions、Linode LKE、Terraform Cloud。

我的 main.tf 文件如下所示:

和我的 output.tf 文件

在 Github Actions 中,我正在运行以下步骤:

当我查看结果时,terraform state list我可以看到我的资源:

但是我terraform plan失败了,问题似乎源于这些资源试图重新创建的事实。

有没有办法告诉 terraform 它不需要重新创建这些资源?

0 投票
0 回答
16 浏览

terraform - Terraform Cloud cottinuos 部署销毁以前的实例

我正在尝试使用Terraform Cloud和 github 自动部署一个简单的 EC2 实例。
我做了一个简单的 repo 来配置 EC2 实例。

结构:

主文件

vars.tf(两者相同)

例子.auto.tfvars

ec2.tf

基本上我要做的是更改resource_name值,将代码推送到 git 并获取一个新的 ec2 实例。但是每次我这样做时,以前的 EC2 都会被销毁。我相信我并不完全理解 tfstate 概念:S。

有什么推荐吗?

感谢和问候

0 投票
0 回答
12 浏览

terraform - 将状态迁移到 TFE 时的 Terraform 版本依赖性

我一直致力于将项目从 terraform on prem 迁移到 TFE。所以,我能够成功迁移到 0.12.31(从 0.11),然后迁移到 TFE,然后迁移到 0.15.5。但是,在为我的一个新工作区迁移状态时,我收到以下错误:

│ 错误:查找工作区时出错│ │ 工作区读取失败:工作区值无效

当我尝试迁移我的状态并使用此处提到的所有步骤时,就会发生这种情况。

对我来说,它曾经在 0.12.31 版本上将状态从本地迁移到 TFE 时无缝工作,但似乎是 0.15.5 的一些问题。有没有其他人遇到过类似的问题?

重现步骤 :

  1. 将您的 terraform 状态文件保存在本地。
  2. 在 TFE 上创建一个工作区(我有多个工作区,所以使用前缀逻辑来选择工作区)
  3. 删除现有的 .terraform 文件夹(如果有)
  4. 选择 terraform 版本为 0.15.5
  5. 运行terraform init它应该给你这个错误

p.s. if you'll remove the state file and run terraform init it runs successfully

0 投票
0 回答
20 浏览

terraform - Azurerm 后端无法与 Terraform Enterprise 一起使用,相同的代码在我的本地机器上运行并将状态存储在 blob 中。有什么具体的配置吗?

我正在使用来自https://www.terraform.io/docs/language/settings/backends/azurerm.html的 azurerm 后端代码块

当我使用 azurerm 后端代码块在本地计算机上执行 main.tf 时,我的状态文件将存储在我的 azure blob 中。但是当我从 TFE 工作区执行这个模块时,我没有在我的天蓝色 blob 上获取状态文件。terraform 企业是否需要任何特定配置?

0 投票
1 回答
41 浏览

terraform - 云上创建/删除虚拟机的 Terraform 状态文件

如果我在云上部署了 15 个 VMS,并且我想使用 terraform 创建一个 VM 来对其进行测试,并且我想删除这一个 VM。我的状态文件会包含所有 16 个虚拟机还是仅包含一个虚拟机?

删除 VM 的最佳行动方案是什么?

  • 状态文件只有一个虚拟机,运行 terraform destroy
  • 删除状态文件
  • 状态文件有 16 个 VMS,运行 terraform destroy
  • 转到云控制台,删除虚拟机并运行 terraform apply
0 投票
0 回答
30 浏览

terraform - 使用 Terraform Cloud (VCS) 强制重新创建卷

我有一个连接到 git repo(VCS 支持的工作区)的 Terraform Cloud 帐户,所以我只能执行 VCS 驱动的运行工作流。我有一个带有附加卷的 VM,我想从头开始重新创建卷(是的,丢失所有数据)。我已阅读有关计划替换选项的信息,但这不能在我的工作区中使用。

那么,哪个是使用 Terraform VCS 支持的工作区执行卷重新创建的最佳选择?

顺便说一句,我使用 OpenStack 作为云基础设施和官方terraform-provider-openstack/openstack provider