使用 main.tf 文件的路径启动 Terraform 时更改 .terraform 和 terraform.tfstate 目录的位置

Den*_*nis 4 terraform

当我启动 Terraform 时,terraform apply ../myEnvironment/它成功地接收main.tf文件../myEnvironment/main.tf并创建terraform.tfstate一个.terraform目录,但同时它创建一个目录,其中包含执行 Terraform 命令的目录中的.terraforma 。terraform.tfstate

有没有办法说 Terraform 只.terraform在 main.tf 文件所在的目录中创建文件和目录?所以执行时只在?terraform apply ../myEnvironment/中创建文件../myEnvironment/main.tf

我已经包含了

terraform {
  backend "local" {
    path = "../myEnvironment/terraform.tfstate"
   }
}
Run Code Online (Sandbox Code Playgroud)

在我的main.tf

Den*_*nis 10

所以我找到了解决方案。

正如这里提到的,您需要在启动 Terraform 之前创建环境变量:

TF_DATA_DIR=../myEnvironment/.terraform terraform init ../myEnvironment/
TF_DATA_DIR=../myEnvironment/.terraform terraform apply ../myEnvironment/
Run Code Online (Sandbox Code Playgroud)

此处文档中提到的答案指定了文件terraform.tfstate中的位置main.tf

terraform {
  backend "local" { path = "../myEnvironment/terraform.tfstate" }
}
Run Code Online (Sandbox Code Playgroud)

这样,您就可以独立决定在何处执行 Terraform 来发挥其魔力。:)

也许它会帮助某人节省一些时间。