问题标签 [infrastructure-as-code]
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/terragrunt 中定义了我的应用程序的基础架构。为了能够在不同的环境中部署完整的应用程序,我为整个应用程序创建了一个模块。但是我不断得到:
无法真正找出问题所在
postgresql - 使用 Terraform 进行 AWS RDS IAM 身份验证
我正在尝试正确设置我的基础设施,没有密码或密钥。AWS RDS 可以选择这样做,让用户(应用程序)使用生成的令牌进行身份验证。
但是,在文档中,其中一个步骤(这个)需要在 Postgres 数据库中运行查询以创建用户并授予他特定权限:
我想用 Terraform 配置整个堆栈。我已经查找了一些“hacks”以在 RDS 实例化之后运行查询(此处),方法是:
或者:
但是它们都需要创建主密码并以某种方式将其传递到“脚本”中。
是否有可能用 Terraform 干净地做到这一点,没有硬编码的密码被传递?
我很想配置数据库并仅启用具有正确访问权限的特定 EC2/ECS 实例,而我的 git 存储库中没有任何密码。
terraform - 你如何为 IAC 设置你的仓库?
在设置 Terraform 存储库时,您将如何将基础架构设置为代码存储库?如果您在职责分离仍然占主导地位的环境中工作怎么办?
你会为多项服务做回购吗?
例如帐户回购然后在那里你有一个网络回购,iam回购,服务回购,安全回购等?
terraform - 使用 Terraform 时从实例获取 EC2 Windows 密码
使用 terraform 时,我正在努力从几个新的 ec2 实例中获取密码。一直在阅读一些帖子,并认为我有它但没有得到任何地方。
这是我的配置:
设法清除所有语法错误,但现在运行时出现以下错误:
kubernetes - Terraform 污点资源命名约定 (v0.11.13)
我的模块abc
包含一个通过https://github.com/helm/charts/tree/master/stable/redis-haredis-ha
的 helm 赞美部署到 Kubernetes的实例。我想要这个资源。当我看到资源列为:taint
terraform state list
- module.abc.module.redis.helm_release.redis-ha[3]
我从https://github.com/hashicorp/terraform/issues/11570的理解是该taint
命令早于state list
. 从 v0.12 开始,它将遵循相同的命名约定。
不幸的是,我无法升级到 v0.12。
我该如何处理 v0.12 之前taint
的资源?module.abc.module.redis.helm_release.redis-ha[3]
我很高兴污染整个redis-ha
部署。
file - 如何在 Terraform 提供的资源(Windows 或 Linux 机器)上写入文件
我想知道是否有一种方法可以将文件写入 Terraform 提供的 Linux 或 Windows 机器。例如,我想将一个文件写入 D:\temp\myfile.txt,其中应该包含我可以从 main.tf 传递的信息。
我尝试使用以下
但是当我运行 Terraform init 或 terraform plan 时,我收到以下错误
terraform - terraform_remote_state 数据块语法
我正在使用 Terraform 进行 AWS 多账户设置。我有一个创建多个子帐户的主帐户,在子帐户中我引用主帐户的远程状态来检索输出值。
该terraform plan
命令在测试 main.tf 中针对此配置失败:
出现以下错误:
从我从文档中可以看出,这应该可以工作……我做错了什么?
amazon-web-services - 如何部署特定的 tf 文件(Terraform)
我的 terraform 根目录中有 3 个 .tf 文件:
- vpc.tf
- 子网.tf
- 实例.tf
- 连同运行 terraform init 后的 .terraform 目录
我只想部署运行类似的 vpc.tf:
但它不起作用(我收到一个 Go 错误:“zip:不是有效的 zip 文件”)。如果我只是跑
它将尝试在所有 3 个 terraform 文件(vpc.tf、subnets.tf 和 instances.tf)中应用所有配置,这不是我想要的。似乎让它工作的方法是,拥有一个完全不同的文件夹,然后运行类似的东西
哪个有效。这种方法的问题在于,如果我在 vpc/ 文件夹中有 2 个或更多 terraform 文件,我会再次回到第一个问题。似乎解决方案是在特定文件夹中拥有特定资源,但这似乎并不干净,因为我可以预见,如果基础设施增长,我最终会得到几个包含一些 terraform 文件的文件夹。所以问题是:
有没有办法“terraform 应用”特定的 terraform 文件,而忽略文件夹中的所有其他文件?我错过了关于 terraform 的一些基本知识吗?
amazon-dynamodb - 如何在 CloudFormation 中使用基础架构即代码实施 DynamoDB 全局二级索引
我正在使用基础架构即代码在 CloudFormation 中实施 GSI。我想要做的就是使用这个表来记录主 DynamoTable 中的条目数。这是主要故事的样子:
我不需要原始表中的键,我想要的只是为新 GSI 创建一个新的 HASH 键,它会告诉我我正在跟踪的计数来自哪个表,即上面的表。
以下是我迄今为止尝试实施 GSI 的方式:
但是,我得到的错误如下:
An error occurred: CaseRecords - Property Projection cannot be empty..
当我包含我曾经的 PROJECTION 时,仅userId
来自原始表的只是为了跟踪每个用户在原始表中的条目计数,我尝试以下操作:
但是,这也会返回错误:
An error occurred: CaseRecords - Property AttributeDefinitions is inconsistent with the KeySchema of the table and the secondary indexes.
如何使用 CloudFormation 模板在 Dynamo 中正确实现全局二级索引,以便在原始表中记录条目数????
谢谢。
更新
如果有人想知道这就是我能够部署它的方式。这不是一个完美的解决方案,但它让我可以跟踪并计算项目表中的条目:
更新 #2 - 失败
根据下面@Pedro Arantes 提供的信息,我正在尝试使用我想要使用的属性定义来实现 GSI。然而,这也失败了。下面是实施,这是我使用的 AWS Doc 的链接:AWS GSI Doc,这是失败的实施:
我怎样才能让它只与NonKeyAttributes
我在AttributeDefinitions
???
typescript - 在 Pulumi 中,存在 pulumi.Output.apply 的等价物,但要转换 pulumi.Input 值?
我正在 Typescript 中开发一个名为 CopyPostgresql 的 Pulumi ComponentResource。
CopyPostgreSql 是一个 Kubernetes 作业,它将源 Postgresql 数据库的内容流式复制到目标 Postgresql 数据库。CopyPostgreSql 的选项包括属性 source 和 target。两者都是 DatabaseInput 类型。
所以,我想使用端口作为来自另一个组件的另一个属性的值,但另一个属性的类型是 Input<string>。
如何将 Input< 数字 > 类型的值应用(或转换)到 Input< 字符串 >?一般来说:在 Pulumi 中,存在 pulumi.Output.apply 的等价物,但要转换 pulumi.Input 值?