如何从其他文件夹运行terraform init?

时间:2017-11-13 21:59:35

标签: windows terraform terraform-template-file

我想编写用于CI / CD目的的terraform,我不喜欢脚本中的CDing,我宁愿有特定的路径。

我尝试了terraform init c:\my\folder\containing\tf-file

但是运行会将.terraform文件夹放入我的cwd。

4 个答案:

答案 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选项,在这种情况下,给定的模块将在任何其他初始化之前复制到目标目录中   步骤运行。

https://www.terraform.io/docs/commands/init.html