有没有办法让 Terraform CLI 在 PWD 以外的目录中运行脚本?

All*_* Xu 1 terraform

据我所知,当我在目录中运行 terraform CLI 时,它会从当前目录中获取所有 terraform 工件。

是否可以让 terraform apply 和 terraform plan 在当前 PWD 以外的目录中查找脚本,这样我就不必不断更改当前目录?

Mar*_*ins 6

在我撰写本文时,Terraform v0.14.0 目前正处于候选版本中,其最终版本预计将在未来几周内发布。

该新版本将引入一项新功能,允许在运行其任何子命令之前请求 Terraform 切换目录本身。例如:

terraform -chdir=subdirectory init
terraform -chdir=subdirectory apply
Run Code Online (Sandbox Code Playgroud)

这本质上与启动 Terraform 且当前工作目录已设置为给定子目录相同,但有两个细微差别:

  • Terraform 会将path.cwd值设置为运行 Terraform 的目录,而不是子目录。和之前一样,path.root是包含根模块的目录,因此两个目录都可用。
  • 如果您的CLI 配置包含 Terraform 在启动期间解析的路径,那么它们将相对于原始工作目录进行解析,因为目录切换仅适用于给定子命令的行为,而不适用于 Terraform 在运行子命令之前执行的操作。

这些差异对于常见的 Terraform 使用通常都不重要,因此在大多数情况下,您可以认为该-chdir=选项与首先使用直接切换到目标具有相同的效果cd