问题标签 [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.
terraform - 引用 Terraform 中的其他模块资源
我的 Terraform Cloud git 项目中有这样的层次结构:
所有主main.tf
文件都包含带有子文件夹的模块定义:
/main.tf
:
/aws/main.tf
:
/aws/security-rules/main-tf
:
/aws/vms/main-tf
:
然后我定义了这个安全规则。
/aws/security-rules/sec-rule1/main-tf
:
而且我想从一个或多个 VM 中引用它,但我不知道如何通过资源 ID(或名称)进行引用。我使用简单的名称而不是参考。
/aws/vms/vm1/main-tf
:
我想使用通过 name 或 ID 引用的安全规则(和更多东西),因为它会更加一致。此外,当我创建一个新的安全规则并同时创建一个 VM 时,Terraform OpenStack 提供者计划它没有错误,但是在应用它时,会产生错误,因为 VM 是先创建的,它没有发现尚未创建新的安全规则。
我怎样才能做到这一点?
amazon-web-services - Terraform Cloud / Enterprise - 如何使用 AWS 代入角色
我想将 AWS Assume Roles 与 Terraform Cloud / Enterprise 一起使用
在 Terraform Open Source 中,您通常只需执行 Assume Role,利用 CLI 上的 .aws/Credential Profile(初始身份验证)并执行 Assume Role:
问题是,对于 Terraform Enterprise 或 Cloud,您无法引用配置文件,因为不可变的基础架构不会在其目录中包含该文件。
Terraform Cloud/Enterprise 需要将访问密钥 ID 和秘密访问密钥设置为变量,以便其基础设施可以通过其管道执行 Terraform RUN,并对您想要在其中预置的任何 AWS 账户进行身份验证。
所以问题是:如何利用 AWS 账户的访问密钥 ID 和秘密访问密钥执行 AWS 担任角色,并使用“操作”:“sts:AssumeRole”,策略?
我认为,以下方法可行,但是 Terraform 正在通过 AWS 凭据配置文件凭据为具有 sts:AssumeRole 策略的帐户进行初始身份验证
Terraform 是否可以查看 access_key 和 secret_key 来确定在尝试担任角色时要使用的 AWS 账户,而不是使用 AWS 凭证配置文件?
为了允许 Terraform Cloud/Enterprise 获得新的 Assume Role 会话令牌,它需要使用 Access_key 和 Secret_key,告诉它哪个 AWS 账户具有 sts:assume 角色,链接到要预置的成员 AWS 账户,以及不是 AWS 信用档案
谢谢
terraform - 跨 terraform 工作区共享 Google Cloud Platform 项目
我正在尝试使用远程存储(Terraform Cloud)设置一个 terraform 项目,该项目将主要提供 Google Cloud Platform 资源。作为基础架构的一部分,我需要 3 个环境,这些环境将使用 terraform 工作空间进行管理。每个环境在我的存储库中都有自己的目录,在每个环境中我将定义环境特定的资源。目录结构类似于:
但是,每个环境都需要使用相同的 Google Cloud Platform 项目。我通常会在最根main.tf
文件中使用以下内容创建项目:
所以我的问题是我如何只创建一次项目并在环境之间共享它?在每个环境中执行以下main.tf
操作不起作用:
google_project.project.project_id
找不到资源。大概是因为该terraform plan environments/{staging,production}
命令不知道查找目录树。
我考虑过使用一个模块,但鉴于上面的代码使用了一个随机 id,这不会导致为每个环境创建一次项目,而是使用不同的 id?
编辑:另一个想法是创建一个core
工作区,其中包含 Google Cloud Platform 项目的设置以及任何其他共享资源。然后每个环境将包含一个data
指向core
工作区远程状态的块:
这是一个可接受的解决方案吗?
terraform - Terraform 云:导入现有资源
我正在使用terraform cloud来管理 AWS 中预置的基础设施的状态。
我正在尝试使用terraform import
导入当前不受 terraform 管理的现有资源。
我知道terraform import
这是一个仅限本地的命令。我已经设置了一个工作区引用,如下所示:
AWS 凭证是在远程云工作区中配置的,但 terraform 似乎没有从工作区引用 AWS 凭证,而是回退尝试使用指向不同 AWS 账户的本地凭证。我希望 Terraform 在运行时通过引用工作区中的变量来使用凭据terraform import
。
当我注释掉本地配置的凭据时,出现错误:
我本来希望 terraform 使用工作区中配置的凭据。
请注意,当我直接从云控制台运行 plan/apply 命令时,terraform 能够正确使用凭据。
terraform - 如何在 terraform cloud 中从 git 加载文件?
有没有办法将 lambda aka javascript 文件从 github 加载到 terraform cloud?我尝试了很多方法,例如:local-exec 执行 curl 来拉取文件。HTTP数据->但是这个不能像js文件一样使用它:
Terraform 云上似乎没有任何效果。即使 local-exec 执行 curl 的第一个选项适用于本地但不适用于云。有没有人这样做过?
terraform - Windows 和 Linux 上的 terraform-provider-local(Terraform Cloud Worker VM)
在我的 Windows 机器istioctl.exe
上,我的 PATH 上有。当我运行它时local-exec
,它可以工作。
对于 Terraform Cloud,我首先下载istioctl
并将其放在${path.module}/tmp
. 但我需要将local-exec
以上内容更改为./istioctl version --remote=false;
.
对于 TFC,有没有办法添加istioctl
到,PATH
所以我不必使用./
?
terraform - 无法同时创建多个 Cosmos MongoDB 集合
尝试同时创建两个集合会引发此错误:
从响应日志以及该apply
阶段发生错误的事实来看,我怀疑它与 API 有关。
样品:
- 模拟问题的配置:main.tf
- Terraform 日志:run-pAXmLixNWWimiHNs-apply-log.txt
解决方法
一次创建一个集合可以避免这个问题。
terraform - terraform cloud - 不存在具有给定名称的提供程序
根据文档,我已将“k8s”提供程序添加到我的 Git 存储库中
然而,在 Terraform Cloud 上,它仍然失败,没有提供给定名称的提供者 可能导致这种情况?