terraform相关内容

如何在没有模块依赖的情况下共享 terraform 脚本

我想分享一个将在不同项目中使用的 terraform 脚本.我知道如何创建和共享模块,但是这个设置有一个很大的烦恼:当我在脚本中引用一个模块并执行 terraform apply 时,如果模块资源不存在,它将被创建,但如果我执行 terraform destroy 这个资源也会被销毁. 如果我有两个项目依赖于同一个模块,并且在其中一个项目中我调用 terraform destroy 它可能会 ..
发布时间:2022-01-16 21:34:31 其他开发

principal states.amazonaws.com 无权担任提供的角色

我使用 Terraform 创建了一个 AWS 步进函数.目前,step 函数目前只有 1 个 lambda 函数: 资源“aws_iam_role_policy"“sfn_policy"{政策 = jsonencode({“版本":“2012-10-17",“声明":[{“效果":“允许",“动作":“sts:AssumeRole",“资源":“*"},{“Sid":“VisualEditor ..

在根模块中使用 aws_vpc 数据源的 Terraform 鸡/蛋问题

我有一个根 Terraform 模块,它声明了一个 VPC 模块和其他模块,例如要在 VPC 中启动的 EC2 实例. 在 EC2 模块中,我使用 aws_vpc 类型读取 VPC: 数据“aws_vpc"“vpc"{筛选 {名称 = “标签:名称"值 = [var.name_tag]}} 现在,如果我独立声明模块,这可以正常工作. 但是当声明一个单独声明这些其他模块的根模块时,我 ..
发布时间:2022-01-16 21:34:16 其他开发

具有 Beta 参数的 Google Cloud Platform 资源的正确 Terraform 提供程序配置是什么?

改造任何由任何 beta 参数定义的 Google Cloud Platform (GCP) 资源都需要 google-beta 提供程序.应该使用 google-beta 提供程序而不是 或 与 google 提供程序一起使用吗? 换句话说,假设某个 Google Kubernetes Engine (GKE) 集群 $GKE_CLUSTER_NAME 存在于 GCP 项目 $GCP_PR ..

google_project_iam_binding 中的 terraform 'condition' 错误

我正在尝试创建用户并为他设置策略.创建用户,没问题.问题是当我尝试设置条件时. 通过 gcloud 可以正常工作,但使用 terraform 则不行.当我删除条件行时,可以工作,但我需要这个条件. 按照 gcloud 命令: 云项目 add-iam-policy-binding projeto-xyz --member='serviceAccount:client-bot@proje ..

使用现有资源(安全组)的数据,获取:未在根模块中声明托管资源

学习 Terraform,我正在尝试启动一个 EC2 实例,重用现有的安全组(标记为 my-tib-sg). 我收到以下错误,但不确定我做错了什么: 错误:引用未声明的资源在 module_three.tf 第 62 行,在资源“aws_instance"中“nginx":62:vpc_security_group_ids = [aws_security_groups.my-tib-sg. ..

使用 terraform cidrsubnet 配置子网

我正在尝试使用 Terraform 支持的 cidrsubnet 函数创建两个子网.我拥有的 VPC cidr 是“10.32.0.0/16".我正在尝试拥有子网 10.32.1.0/27 和 10.32.3.0/27.为了实现这一点,我在获取 cidrsubnet 功能时遇到了一些麻烦.到目前为止我所拥有的是: cidrsubnet(10.32.0.0/16, 11, netnum???) ..
发布时间:2022-01-16 21:33:07 其他开发

在 Azure Pipeline 中运行的 Terraform 尝试安装 azcli 提供程序

我正在 Azure Pipeline 中运行 Terraform(我有这样做的经验),并且出于某种原因,初始化步骤正在尝试为 azcli 安装提供程序,但我认为该提供程序不存在.当我在本地计算机上运行 Terraform 时,不会发生这种情况. 我的提供者文件是: terraform {required_version = ">=0.13";后端“azurerm"{容器名称 = “tfst ..

Terraform - 在 variables.tf 中为 type = map(object()) 添加验证

首先感谢这篇文章 在 variavles.tf 中为 type = map(object()) 添加一个默认字段,这回答了我在获取默认值以使用 type map(object()) 时遇到的第一部分难题.我要开始工作的最后一部分是如何验证输入值. terraform {实验 = [module_variable_optional_attrs]}变量“dns_server"{description ..
发布时间:2022-01-16 21:32:28 其他开发

Terraform:从资源内的数组中过滤对象

又是 terraform 的动态值映射问题. 一开始我有什么,一个局部变量: 本地人{users_with_appId = [对于 var.users 中的用户:用户 if user.app_id != null]} 用户变量: 用户 = [{用户名 = "john.doe1";角色 = [“ORG_ADMIN"]profile_attributes = ..
发布时间:2022-01-16 21:32:23 其他开发

在 Terraform 销毁期间,terraform 在销毁 Auto-scaling 组之前尝试销毁 ECS 集群并且失败了

我已将 ECS 与容量提供程序一起用于部署我的应用程序,并为容量提供程序使用的 ASG 启用了缩减保护.在 Terraform destroy 期间,我看到 terraform 试图破坏 ECS 集群,尝试 10 分钟后失败并输出,错误:删除 ECS 集群时出错:ClusterContainsContainerInstancesException:当容器实例处于活动或耗尽状态时,无法删除集群. ..

Terraform 无效的“每个"属性

我有一个 tfvars.json 文件,我想用它来传递我的服务器配置. {“测试":“测试",“机器":{“master01":{“node_type":“master",“图像":“ubuntu-20.04",“server_type":“cx21",“位置":“nbg1";},“master02":{“node_type":“master",“图像":“ubuntu-20.04",“serv ..
发布时间:2022-01-16 21:31:32 其他开发

在资源创建中使用地图列表的地图

我希望能够使用 TF Vars 中定义的以下格式创建多个 R53 记录: custom_zone_records = {“demo.a.com"= [{“*.b";= {类型:“CNAME",记录:[“d.com"]}},{“*.c";= {类型:“CNAME",记录:[“d.com"]}}]} 以记录为例,应该创建R53记录: 名称:*.b.demo.a.com类型:CNAME记录:[“d ..
发布时间:2022-01-16 21:31:21 其他开发