Terraform:运行terraform apply/plan时指定工作目录

17

在运行 terraform apply 或 terraform plan 时,有没有任何方式(或解决方法)可以指定工作目录? 例如:

terraform apply working_dir/vpc
terraform apply working_dir/dns
terraform apply working_dir/postgres
terraform apply working_dir/service-a
terraform apply working_dir/service-b

我知道有一个目标选项,可以指定要 目标化 的资源。但在这里,我需要一个更抽象的文件夹。

最终目标是能够使用以下命令设置基础架构:

make vpc
make dns
make postgres
make service-a
make service-b

你可以使用 pushd $working_dirpopd - BMW
在我的使用场景中,pushd和popd并不是非常有用的。甚至cd命令都更好些。 - Yaya
那为什么不这样做,而是要在terraform中请求新功能呢?如果您认为这是有用的功能,terraform是开源的,并欢迎您贡献代码以添加此功能。 - BMW
为什么不使用一个Makefile来实现你所需的功能呢? - Nathan Smith
3个回答

23

现在,您还可以使用全局选项-chdir

chdir选项指示Terraform在运行给定子命令之前将其工作目录更改为给定目录。这意味着Terraform通常在当前工作目录中读取或写入的任何文件都将在相应的目录中进行读取或写入。

例如:

terraform -chdir=environments/production apply

6
您可以在执行 apply 命令时指定计划或目录。您提供的示例是有效的 apply 命令。

用法:terraform apply [选项] [目录或计划]


0

请在包含多个包含terraform (*.tf)文件的目录的父目录中执行以下命令。

要执行terraform:

terraform init dir-name
terraform validate dir-name
terraform plan -detailed-exitcode -out=plan-name.out dir-name
terraform apply plan-name.out

使用以下命令进行销毁:

terraform destroy dir-name

1
使用-chdir选项 - Thomas Decaux
1
使用-chdir选项 - undefined
@ThomasDecaux 为什么呢?这个看起来更整洁一些。使用其中一个而不是另一个有特定的原因吗? - Telion

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接