我是terraform的新手,在创建ec2实例时遇到问题,我的条件是,我正在从变量文件(如IP池)传递private_Ips
值并创建两个ec2实例,所以当我运行{{1 }}第一次创建两个ec2实例,但是当我第二次运行terraform apply
时,它说IP已经被使用,它不会占用第三和第四IP。我想在第二次运行它以获取第三和第四IP。以下是我的定义。您能建议一下吗?
var.tf
terraform apply
main.tf
variable "private_ips" {
default = {
"0" = "x.x.x.x"
"1" = "x.x.x.x"
"2" = "x.x.x.x"
"3" = "x.x.x.x"
}
}
答案 0 :(得分:0)
Terraform是一种有状态的工具。因此,每当创建一些基础架构时,它都会跟踪(称为Terraform state)。整个想法是,如果您第一次运行terraform apply
,它将创建一些基础结构。然后任何后续运行只需更新即可完成之前创建的操作(对.tf
文件进行任何更改)。
您可能想要阅读workspaces的想法,该想法是针对目标基础结构的多个独立副本使用相同的配置(.tf
文件)。通常用于开发/测试/产品类型的设置。可能就是您想要的。