实际上,我们从那里开始使用webapp,我们通过以下方式将变量传递到terraform:>
如下所示
terrain apply -input = false -auto-approve -var ami =“%ami%” -var region =“%region%” -var icount =“%count%” -var type =“%instance_type%”
实际上,这里的问题是后端不支持我需要通过应用程序传递值的变量。]>
需要一些替代方法来解决此问题
我正在使用詹金斯参数化作业来传递值。
有人可以为我解释最适合我的工作流程。
我的意思是文件结构,ci / cd集成等等。
提前感谢。
代码如下:
My main.tf like below
地形
{
后端“ s3”
{
bucket =“ terraform-007”
键=“键”
region =“ ap-south-1”
profile =“ venu”
}
}提供者“ aws”
{
profile =“ var.awsprofile”
region =“ {var.aws_region}”
}
资源“ aws_instance”“ VM” {
count = var.icount
ami = var.ami
instance_type = var.type
标签= {
环境=“ $ {var.env_indicator}”]
}
}
像vars.tf
变量“ aws_profile”{
默认=“默认”
description =“ AWS配置文件名称,在〜/ .aws / credentials中设置”
}
变量“ aws_region”{
类型=“字符串”
默认=“ ap-south-1”
description =“要在其中创建资源的AWS区域”
}
变量“ env_indicator”{
类型=“字符串”
默认=“开发”
description =“我们处于什么环境?”
}
变量“ icount”
{
默认= 1
}
变量“ ami”
{
默认=” ami-54d2a63b”
}
变量“存储桶”
{
默认=“ terraform-002”
}
变量“类型”
{
default =” t2.micro”
}
output.tf像:
输出“ ec2_public_ip”
{
值= [“ $ {aws_instance.VM。*。public_ip}”]
}
输出“ ec2_private_ip”
{
值= [“ $ {aws_instance.VM。*。private_ip}”]
}
实际上,我们从那里开始使用webapp,我们通过将变量传递到terraform来,如下所示terraform apply -input = false -auto-approve -var ami =“%ami%” -var region =“%region%” -var icount = “%count%” -...
只需在执行terraform之前创建后端文件,然后将其应用到您的jenkins文件中
例如_.backend.tf