有啥方法可以让 Terraform CLI 在 PWD 以外的目录中运行脚本?
Posted
技术标签:
【中文标题】有啥方法可以让 Terraform CLI 在 PWD 以外的目录中运行脚本?【英文标题】:Is there any way to have Terraform CLI runs scripts in a directory other than PWD?有什么方法可以让 Terraform CLI 在 PWD 以外的目录中运行脚本? 【发布时间】:2021-03-07 16:04:44 【问题描述】:我了解当我在目录中运行 terraform CLI 时,它会从当前目录中获取所有 terraform 工件。
是否可以让 terraform apply 和 terraform plan 在当前 PWD 以外的目录中查找脚本,这样我就不必不断更改当前目录?
【问题讨论】:
这与:cd $NEW_DIR; terraform apply
有何不同?
@GrzegorzOledzki,我正在构建 shell 脚本,它可以做更多的事情,而不仅仅是 terraform,它需要从许多实际路径中获取数据
@GrzegorzOledzki,无论其他选项如何,我都想知道该功能是否存在。
你可以直接传入你要申请的目录。 terraform.io/docs/commands/apply.html
@Adrian,我在您分享的链接中找不到。你能给我你所指的选项吗?
【参考方案1】:
在我撰写本文时,Terraform v0.14.0 目前处于候选发布状态,预计在未来几周内发布最终版本。
该新版本将引入一项新功能,允许在运行其任何子命令之前请求 Terraform 切换目录本身。例如:
terraform -chdir=subdirectory init
terraform -chdir=subdirectory apply
这与在当前工作目录已设置为给定子目录的情况下启动 Terraform 基本相同,但有两个细微差别:
Terraform 会将path.cwd
值设置为运行 Terraform 的目录,而不是子目录。和以前一样,path.root
是包含根模块的目录,因此两个目录都可用。
如果您的CLI configuration 包含 Terraform 在启动期间解析的路径,那么它们将相对于原始工作目录进行解析,因为目录切换仅适用于给定子命令的行为,而不适用于 Terraform 在运行之前采取的操作子命令。
这些差异对于常见的 Terraform 使用通常都不显着,因此在大多数情况下,您可以认为-chdir=
选项与首先使用cd
直接切换到目标具有相同的效果。
【讨论】:
以上是关于有啥方法可以让 Terraform CLI 在 PWD 以外的目录中运行脚本?的主要内容,如果未能解决你的问题,请参考以下文章
有啥方法可以使用 azure cli 方法在存储帐户中创建 AzureBlob 容器和目录?
Terraform:在同一类型上同时使用数据源和资源有啥意义?