将列表从变量放入Terraform中的内联策略

我正在创建访问策略作为Terraform中的内联策略: 是否可以使用一个列表类型的变量来代替它? 如果是,你能举个例子吗 对我来说,例外是: Error: Error running plan: 1 error(s) occurred: * aws_elasticsearch_domain.db: 1 error(s) occurred: * aws_elasticsearch_domain.db: At column 1, line 1: output of an HIL express

Terraform自定义信任库

我在尝试使用terraform时遇到了以下问题 我尝试通过企业代理使用terraform 所以我设置了HTTPS_PROXY env变量 但是企业代理作为一个中间人,为病毒解析网页。并配置了由我们企业自己的权威机构颁发的安全服务器证书 terraform似乎无法连接到https注册表,因为此CA根证书不受信任 有没有一种方法可以配置terraform在Windows下使用自定义CA根信任库 下面是我在初始化阶段尝试连接Terraform时遇到的错误 <!-- language: none

Terraform 如何从地形模块调用自定义地形提供程序

我想编写一个terraform模块,它将一个参数作为输入,并根据输入生成如下标记:Team,Slack,Environment。此输入将用于调用RESTAPI并获取Team、Slack等的值 我正在考虑编写一个自定义terraform提供程序,它将调用RESTAPI。但是我不知道如何从terraform模块调用自定义提供程序。我找到了RESTAPI的提供程序。 您可以使用它或创建一个新的引用它 有关第三个插件的安装,请参阅

terraform变量声明错误

我在terraform 0.11.14上,我有一个aws_cloudformation_堆栈资源,如下所示: resource "aws_cloudformation_stack" "ingress_sg" { name = "bastion-${var.accountName}-ingressIntuitIPs" lifecycle { prevent_destroy = true } parameters { VpcId = "${var.default_

在terraform V0.12中连接变量

我正在尝试将我的地形文件从V0.11更新到V0.12,我有一些问题 用字符串连接变量的最佳方法是什么 在V0.11中,我使用这个:${var.name}-STRING-${var.name2},在V0.12中,我可以使用这个:var.name“-STRING-”var.name2,或者我必须使用其他方法连接变量和字符串吗 要连接,请检查以下几个示例: 如果要将“@”添加到字符串: value = "${var.username}@${aws_instance.my-instance.public

terraform:data.aws_子网,值为';计数';无法计算

地形版本0.11.13 错误:刷新状态时出错:发生1个错误: data.aws_subnet.private_subnet:data.aws_subnet.private_subnet:无法计算“count”的值 VPC代码生成了上述错误: resources.tf data "aws_subnet_ids" "private_subnet_ids" { vpc_id = "${module.vpc.vpc_id}&

如何覆盖terraform上模块级定义的映射变量值

我已经在terraform中创建了自定义模块 main.tf resource "xyz" "abc" { name = var.settings[name] type = var.settings[type] } variable.tf variable "settings" { type = map(any) description = "Default variables" default = {

Terraform 如何逃过一轮(在地形中)?

cmd=“gunicorn--preload--timeout 600--workers 17-b0.0.0.0:5000 xxx.api.app:create()” 在.tf文件中不起作用。它抱怨花括号 我必须逃离他们吗?如何逃离 谢谢您的建议。您能提供TF使用的完整示例以及收到的错误消息吗?

Terraform 基于变量生成字符串列表

假设我有一些地形变量:变量“cluster”{}和变量“kfkcount”{} 假设cluster=test和kfkcount=3 如何使用terraform将其转换为如下所示的列表 [“test1.c.com”、“test2.c.com”、“test3.c.com”]编辑 有一点可以帮助您,那就是使用循环,并使用count.index作为名称的值。 所以你可能会得到这样的结果: resource ".." "..." { count = "${var.kfkcount}" somet

Terraform 需要AWS选件和地形

我正在尝试为OpenVPN访问服务器开发Terraform代码,但出现错误: aws_instance.openvpn_srv: Error launching source instance: OptInRequired: In order to use this AWS Marketplace product you need to accept terms and subscribe. Terraform是否支持这样使用ami?我们发现通过控制台一次性接受ULA是最容易的,它解决了a

Terraform数据源中的获取值与计算值

根据Terraform文档,数据源可以通过使用不同的提供者实现来获取或计算值 参考- 具体的例子中,计算与提取的区别是什么?区别很小: 在较高级别上,在运行模板之前存在获取的数据,并且在运行时创建计算的数据 获取的数据将类似于引用中的示例。这里Terraform正在获取有关AMI的信息,然后可用于构建EC2实例: data "aws_ami" "web" { filter { name = "state" values = ["available"] } fil

从S3远程状态导入terraform工作区

我正在使用terraform部署到多个AWS帐户,每个帐户都有自己的一组环境。我正在使用terraform工作区和s3远程状态。当我在这些帐户之间切换时,其中一个帐户的terraform workspace列表现在为空。有没有办法从s3远程状态同步工作区的状态? 请告知。 谢谢 我曾尝试创建工作区,但当我运行terraform plan时,它确实创建了所有资源,即使它们已经处于远程状态。我使用以下方法修复了它: 我使用terraformworkspace命令手动创建了新的名称空间 我转到S3,在

尝试在terraform中循环事件时出错

我试图在cloudwatch中循环一个事件模式,但出现了错误。不确定我是否用正确的方式做了这件事 resource "aws_cloudwatch_event_rule" "failed_event" { name = "failed-event" description = "failed event" for value in range(length(var.values)): { event_pattern = <<PATTERN { "source": [

如何在terraform中使用代码管道设置代码构建?

我正在尝试设置codebuild以接收来自terraform代码管道的工件。terraform文件中codebuild资源的相关部分如下所示: source { type = "CODEPIPELINE" git_clone_depth = 1 } 运行terraform apply时,我收到一个错误,错误是: 错误:创建CodeBuild项目时出错:InvalidInputException:无效输入:使用CodePipeline时,sour

AWS DMS端点中通过Terraform的连接属性

我正在使用Terraform在AWS中创建与DMS相关的基础设施(复制实例、端点、任务等)。在编辑S3端点的额外连接属性的过程中,我会这样创建它们: extra_connection_attributes="addColumnName=true;bucketFolder=foldername;bucketName=bucketname;cdcPath=undefined;compressionType=GZIP;csvDelimiter=,;csvRowDelimiter=\n;encrypti

找不到Terraform Sentinel策略资源

我用的是terraform enterprise 我创建了main.tf文件,并放置了下面用于创建sentinel策略的代码 data "tfe_workspace_ids" "all" { names = ["*"] organization = myorg } locals { workspaces = "${data.tfe_workspace_ids.all.external_ids}" # map of names to IDs } resource "t

Terraform 每个带有嵌套动态块的地形资源将继续重新应用相同的更改

因此,我创建了一个google_bigquery模块来创建数据集并设置访问权限 该模块迭代映射列表的映射。它使用each.key创建数据集,然后遍历映射列表以创建动态访问 该模块的工作原理如下: 它既没有错误也没有警告 它部署资源 它适当地填充远程状态文件 问题是,每次我运行terraform时,它都希望一次又一次地重新应用相同的更改 显然有些事情不对,但不确定是什么 这是密码 main.tf locals { env = basename(path.cwd) p

Terraform 在其他模块或资源中使用输出

我已经看到了很多关于将一个模块的输出传递到另一个模块的帖子。由于某种原因,我不能让它工作 我可以得到模块的输出,没有任何问题 但是,当我调用资源中的模块或调用其他模块时,它会询问我安全组ID 以下是我的文件结构: 不确定这是否正确,但在dev/service/dev_instance/main.tf中: 在dev/service/dev_instance/output.tf中: 我的ec2模块build_ec2.tf文件包含以下内容: 我假设您在一个变量.tf文件中定义了var“vpc\u se

在Terraform远程后端中使用变量

对于Terraform远程后端,是否有一种方法可以使用变量来指定组织/工作区名称,而不是硬编码的值 似乎也没有提到任何相关的事情 本文将对此进行详细介绍。需要注意的要点是: 只能指定一个后端,并且配置不能包含插值。Terraform将验证这一点 如果您想使其易于配置,那么可以将其用于静态部分(例如,S3之类的后端类型),然后在运行时通过环境变量或命令行标志以交互方式提供配置 我个人将Terraform操作包装在一个小的shell脚本中,该脚本运行Terraform init,命令行标志使用适当

Terraform 带引号和不带引号的变量样式之间有什么区别?

以下两种地形样式有什么不同,它们是否相同 vpc_id = aws_vpc.default.id Vs vpc_id = "${aws_vpc.default.id}" 第一个是HCL2表达式,第二个是插值 在terraform v.0.12.x之前使用插值,这就是为什么在互联网上仍然可以找到这种符号 如果您有v0.12.x,请使用“${aws_vpc.default.ip}”符号并运行命令terraform validate,您将收到警告: 警告:不推荐使用仅插值表达式

连接到EC2实例时Terraform超时

我试图在terraform中运行这个,一切都很好,但是在创建了实例(ubuntu)之后,它无法连接,它只是超时了。我已多次生成私钥,但仍会出现错误: .tf文件 ##################################### #VARIABLES ##################################### variable "aws_access_key" {} variable "aws_secret_key" {} va

Terraform Terragrunt输出到环境变量GitLab CI/CD

我正试图运行一个“Terragrunt计划-out=$plan”,但似乎我不能?这里我的目标是输出一个计划,然后显示该计划并发布到GitLab合并请求 我该如何着手实现这一点 以下是我到目前为止的情况: - terragrunt plan -out $PLAN - "terragrunt show --json $PLAN | convert_report > $JSON_PLAN_FILE" artifacts: paths:

Terraform 将列表转换为地图和合并值地形

我正在尝试将项目列表转换为地图。 该键将与项中的键匹配,如果该键已存在,则该值应创建列表的附录列表 也许一个例子更容易理解 variable "list" { type = list(map(string)) default = [ { a : "a", k : "k1" }, { a : "b", k : "k1" }, { a : "c",

Terraform:在azure策略计划中将变量作为参数传递

我有一个自定义策略计划,我想使用terraform分配,其中一个策略确实有参数。 我知道,对于单个策略分配,我们可以使用类似的东西,并将变量作为参数传递 parameters = jsonencode({ "operationName": { "value": var.allowed_values, } }) 然而,我尝试了主动,这似乎不像它一直抱怨参数丢失 事实上,我试图将参数硬编码到azurerm_policy_赋值

Terraform-无法从github中获取源模块

我试图从github中获取terraform模块,如下所示: module "example" { source = "https://github.com/cloudposse/terraform-example-module.git?ref=master" example = "Hello world!" } 当我运行terraforminit时,我得到以下错误: Error: Failed to download mod

Terraform 只有人形名称为偶数

我使用terraform已经有一段时间了,但我对代码毫无经验。我一直在使用下面的块为我的主机生成描述 resource "vra_deployment" "test_instance" { count = var.instance_count catalog_item_name = var.catalog_item_name description = "${var.hostname_prefix}${form

Terraform EC2实例的输出子网

我正在用两个模块构建一个VPC和AWS EC2。一个用于VPC,一个用于EC2。我正在努力弄清楚如何为ec2模块中使用的子网使用输出 我在VPC模块中创建了子网 resource "aws_subnet" "tnt_public_subnets_cidr" { vpc_id = aws_vpc.tnt_vpc.id count = length(var.availabilit

Terraform locals.tf文件-解析JSONECODE正文

想知道是否有人跑去解决它。所以,我需要能够生成当前可通过API列出的出口CIDR块列表。示例输出如下所示: [ { "description": "blahnet-public-acl", "metadata": { "broadcast": "192.168.1.191", "cidr": "192.16

如何基于terraform中的cidr块提取子网id?

我在一个区域中创建了vpc和3个子网。我有3个名为jsc、valid、test的服务,我必须为每个服务创建3个实例,我必须从每个区域cidr块传递子网id variable "region" { type = string default = "ap-south-1" } variable "ecom-cidr" { type = string default = "10.0.0.0/16"

Terraform v0.13有条件资源,带有;计数“;

基于评估并用于影响资源计数的变量创建条件资源时出现问题。问题是,有条件地创建的资源随后会在代码中的其他位置引用。例如,此安全组: resource "aws_security_group" "mygroup" { count = var.deploy_mgroup ? 1 : 0 name = "mygroup-sg" vpc_id = aws_vpc.main.id ingress

Terraform 重置地形状态配置

自从我开始使用远程状态以来,最近有几次我在后端配置中指定了错误的值,从而错误地配置了状态。一旦我用这个不正确的信息运行terraform init,它就会抛出一个错误…即使在我纠正错误之后,我也无法正确配置后端。我“认为”当我使用错误信息运行init时,它会被写入.terraform文件夹中的terraform.state。然后,当我更正错误并重新运行terraform init时,它将我的更正视为一个更改,尝试在更改为新配置之前验证旧配置(这是错误的),但由于无法验证旧配置而失败。我现在知道的

Terraform 属性“”的值不正确;触发器";:需要字符串的映射

遇到错误“属性的值不合适”触发器:需要字符串映射 正在尝试使用本地exec provisioner,在本例中为“monitor”,它应在创建特定资源之前触发 尝试在bigip\u ltm\u监视器资源中设置dependens\u=[null\u resource.test\u run]而不是在null\u资源中设置触发器{…} 这允许Terraform在监视器之前创建provisioner资源 有关详细信息,请参见。尝试在bigip\u ltm\u监视器资源中设置依赖=[null\u资源。测试运

Terraform 小部件上的循环

如何仅迭代terraform脚本的小部件部分,并在单个仪表板中获取所有小部件 locals { instances = csvdecode(file("${path.module}/sample.csv")) } //如果我们使用计数,它将循环此部分 resource "aws_cloudwatch_dashboard" "main" { dashboard_name = "my-dashboard" dashboard_body = <<EOF { "w

Terraform:引用或未引用的资源引用?

我不熟悉使用vs代码和Mikael Olenfalk的“terraform”扩展的terraform 我学习了使用字符串插值,在这里我可以ctrl+space(intellisense)并使用资源引用。但是,我不确定这是否总是必需的(引用我的*.tf文件中的资源)?如果我不需要插值而只引用一个资源,那么使用“字符串插值方式”真的很麻烦 假设我有一个名为static site的azurerm_存储_帐户资源。我可以做以下操作,vs代码表示一切正常 name=“${azurerm\u storage

Terraform根据条件在不同提供商之间进行选择

我正在尝试使用Terraform来自动化环境的部署,但设置中有一些棘手的问题: 我需要提供DNS CNAME记录,但我的问题是,基于环境,我需要在DNS或Azure DNS中提供该记录(并且它们是互斥的) 而且,出于同样的原因,例如,当我想在Azure中配置时,初始化TerraformDyn提供程序对我来说没有意义 我认为应该包括两个提供者: provider azurerm { version = "=1.44.0" client_id = var.dns_provide

terraform是否支持AWS备份还原功能?

terraform是否支持从vault()恢复图像的备份功能 在阅读文档时,我发现它确实支持创建备份计划、分配资源和策略、创建vault,但不支持恢复映像或ebs卷 如何在我的terraform模板中添加还原块terraform的执行模型设计用于将预期状态的声明性描述转换为强制操作以自动达到该状态,因此其模型并不真正支持“异常”过程,如还原备份 但是,您可以开发一个与Terraform一起恢复备份的过程,其中主要的恢复操作是在您自己的自动化中使用AWS控制台、AWS CLI或API完成的,然后在

为什么';t Terraform是否可以查看手动安装的提供商?

我正在尝试将安装作为的一部分。上面说插件应该安装在~/.terraform.d/plugins。RKE文档说明插件应该安装在~/terraform.d/plugins/上 为了协调冲突信息,我尝试将二进制文件复制到以下所有位置,但Terraform从未看到任何位置: ~/.terraform.d/plugins/terraform-provider-rke ~/.terraform.d/plugins/rke ~/.terraform.d/plugins/darwin_amd64/terrafo

在我的Terraform云工作区中加载特定的tfvars变量文件

我希望指定要在我的工作区中加载的.tfvars文件 与在工作区中输入所有内容相比,使用文件管理变量要容易得多。我会解释的 我有两个空间: 数据库qa 数据库产品 工作区的Repo如下所示: ├── database/ │ ├── main.tf │ ├── main.qa.tfvars │ ├── main.prod.tfvars 我想为数据库qa工作区加载main.qa.tfvars,为数据库prod工作区加载main.prod.tfvars 为了安全起见,我保留工作区变量上

如何使数据模板文件识别terraform中的数字

我现在面临的问题是这个。我正在努力使我的政策更加灵活。因此,我将它们转换为一个文件,而不是使用EOF 如何使模板文件识别数字值 “${max\u untaged\u images}”和“${max\u taged\u images}”假定为数字 Aws生命周期策略: resource "aws_ecr_lifecycle_policy" "lifecycle" { count = length(aws_ecr_repository.repo)

Terraform 如何指定';来源';如果我没有';我不想使用本地路径

我有两个repo(由于我的管道设置,它必须是两个),一个repo包含创建S3 bucket所需的terraform脚本(非常简单),另一个repo包含后端设置,当我在本地测试时,我可以使用以下方法在第一个repo中下载模型: module "xxxxxx-sagemaker" { source = "../../the_first_repo_name/terraform" } 这将通过运行“terra

使用Terraform脚本部署简单helloworld lambda函数(python)-创建时出错;测试λ“;

我正在尝试使用terraform脚本创建lambda函数 我得到错误,说“错误创建lambda函数”,我把屏幕截图的错误也 这是地形脚本: 我在AWS管理控制台中创建了一个角色,并命名为“欢迎Lambda角色”。这就是我在下面的脚本中提到的角色。我不知道这是否是问题所在 provider "aws" { region = "us-west-2" access_key = "xxz" secret_key = &qu

Terraform找不到1密码模块

我正在尝试通过以下方式将1密码提供程序与Terraform一起使用: terraform { required_providers { onepassword = { source = "milosbackonja/1password" version = "1.1.0" } } required_version = "~> 0.14" backend

Terraform无法检测mongodb.tf文件中的所有更改

问题:Terraform未检测/应用mongodb更改。我正在使用mongodbatlasprovider 概要:我创建了.tf文件以限制对所有微服务的访问。我们在部署分支之前运行MongoDB相关的更改,但在过去的10-15天中,我们开始面临一个问题,即当我们运行terraform apply时,它会检测到40-50%文件的更改。我们必须运行terraform apply 3-4次才能在atlas MongoDB中进行所有更改 示例.tf文件 terraform:0.13.7 provider

上一页   1   2   3    4   5   6  ... 下一页 最后一页 共 62 页