我想编写用于CI / CD目的的terraform,我不喜欢脚本中的CDing,我宁愿有特定的路径。
我尝试了terraform init c:\my\folder\containing\tf-file
但是运行会将.terraform文件夹放入我的cwd。
答案 0 :(得分:4)
我知道这是一个旧线程但是...您正在寻找的命令是:
Dim web As New ChromeDriver
With web
.AddArgument "--headless" ''Works with Chrome but doesn't work with Edge
'OTHER
End With
请参阅此link for help with the global option -chdir=":
<块引用>引自实际 Terraform 站点:
<块引用>运行 Terraform 的通常方法是首先切换到 包含根模块的 .tf 文件的目录(例如, 使用 cd 命令),以便 Terraform 找到这些文件 自动无需任何额外参数。
尽管在某些情况下 - 特别是在将 Terraform 包装在 自动化脚本 — 可以方便地从 与根模块目录不同的目录。为了允许, Terraform 支持全局选项 -chdir=... 您可以包括 在您打算运行的子命令的名称之前:
terraform -chdir=environments/production apply chdir 选项 指示 Terraform 将其工作目录更改为给定的 运行给定子命令之前的目录。这意味着任何 Terraform 通常会在当前读取或写入的文件 将在给定目录中读取或写入工作目录 相反。
答案 1 :(得分:2)
terraform init命令中的[DIR]
选项告诉terraform从哪里处理tf文件,但是没有告诉它存储状态文件的位置。如果要更改存储的本地路径状态文件,请在main.tf中添加一个部分以配置后端路径。
terraform {
backend "local" {
path = "relative/path/to/terraform.tfstate"
}
}
我还没有尝试过,但您可以从命令行传递路径:
-backend-config="path=/foo"
答案 2 :(得分:1)
不带选项指定目录
terraform apply [options] ./path-to-dir
或者你可以使用 -chdir
选项
terraform -chdir="./path-to-dir" apply
答案 3 :(得分:0)
默认情况下,terraform init假定工作目录已经存在 包含一个配置,并将尝试初始化它 配置。
可选地,可以使用.net对空目录运行init -from-module = MODULE-SOURCE选项,在这种情况下,给定的模块将在任何其他初始化之前复制到目标目录中 步骤运行。