这里是Terraform的新手。我有一个在GCP中创建实例的模块。我正在使用变量和terraform.tfvars对其进行初始化。我成功创建了一个实例-例如instance-1。但是,当我修改.tfvars文件以创建第二个实例(除了第一个实例)时,它说它必须销毁第一个实例。如何运行模块以“添加”实例,而不是“替换实例”?我知道创建的第一个实例是在terraform.tfstate中。但这不能解释无法“添加”实例的原因。
也许我错了,但我正在将“模块”(及其配置文件)视为函数-这样我可以随时使用不同的参数来调用它们。事实并非如此。
答案 0 :(得分:1)
Terraform将尝试维护与您的资源定义匹配的已部署资源。 如果要同时使用两个实例,则应在.tf文件中对其进行描述。
例如相同的实例,将计数添加到您的定义
resource "some_resource" "example" {
count = 2
name = "example-${count.index}"
}
例如两种具有特定值的不同资源
resource "some_resource" "example-1" {
name = "example-1"
size = "small"
}
resource "some_resource" "example-2" {
name = "example-2"
size = "big"
}
更好地为每个资源设置tfvars中的特定值
resource "some_resource" "example" {
count = 2
name = "example-${count.index}"
size = ${vars.mysize[count.index]}
}
variable mysize {}
带有tfvars文件:
mysize = ["small", "big"]