获取terraform中的当前工作目录
我正在使用Terragrunt运行Terraform,所以我实际上不确定从哪个路径调用Terraform 因此,我尝试获取当前工作目录,如下所示:获取terraform中的当前工作目录,terraform,terragrunt,Terraform,Terragrunt,我正在使用Terragrunt运行Terraform,所以我实际上不确定从哪个路径调用Terraform 因此,我尝试获取当前工作目录,如下所示: resource null_resource "pwd" { triggers { always_run = "${uuid()}" } provisioner "local-exec" { command = "echo $pwd >> somefile.txt" } } 但是,生成的文件是空的 有什么
resource null_resource "pwd" {
triggers {
always_run = "${uuid()}"
}
provisioner "local-exec" {
command = "echo $pwd >> somefile.txt"
}
}
但是,生成的文件是空的
有什么建议吗?试试看
command=“echo$(pwd)>somefile.txt”
Terraform有一个内置对象路径
,其中包含Terraform知道的各种路径的属性:
是包含放置path.module
表达式的模块的目录path.module
是包含根模块的目录path.root
是当前工作目录path.cwd
path.module
通常是正确的选择,使模块不知道从何处实例化
使用当前工作目录是非常少见的,因为这会使Terraform配置对其应用的位置敏感,并且如果以后从不同的目录或在不同的机器上应用相同的配置,可能会导致不必要的资源更改。然而,在极少数情况下需要这样的东西,path.cwd
就可以了
path.module
和path.root
都是来自path.cwd
的相对路径,因为这样可以最大限度地降低无意中引入Terraform运行到配置中的系统细节的风险。但是,如果出于某种原因确实需要绝对模块路径,您可以使用,例如abspath(path.module)
使用path.cwd
或path.root
(请参见)?文档移动到动词描述通常是有帮助的