如何在Terraform Apply命令中将.tf文件指定为inut?

Aji*_*pat 6 terraform

我是Terraform的初学者。

我有一个包含2个.tf文件的目录。

现在,我要在选定的.tf文件上运行Terraform Apply,而忽略另一个文件。

我可以那样做吗?如果是,怎么办?如果没有,为什么?最佳做法是什么?

Aid*_*man 9

您不能选择性地应用一个文件,然后再应用另一个文件。(也许)实现您想要的两种方法:

  • 使用该-target标志可以将一个文件中的资源作为目标,然后将另一个文件中的资源作为目标。
  • 将每个文件(或更广泛地说,资源组,可能是多个文件)放在单独的“模块”(文件夹)中。然后,您可以分别将apply它们分开。


小智 6

将每个 terraform 配置文件放入单独的目录中可以正确完成工作。\n所以这里是我的结构

\n\n
\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 aws\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 aws_terraform.tf\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 trash\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 main.tf\n
Run Code Online (Sandbox Code Playgroud)\n\n

你所要做的就是:

\n\n
    \n
  1. 进入各个文件夹
  2. \n
  3. terraform init && terraform plan && terraform apply
  4. \n
  5. 输入“yes”以确认 terraform 应用
  6. \n
\n\n

PS:“-target”键没有帮助我。

\n


pan*_*r93 5

您可以使用terraform -target标志。或者您可以在一个单独的目录中有多个 terraform 模块。然后你可以terraform apply在那里。例如,假设您分别有 3 个 .tf 文件。但是您需要同时运行多个。如果你也需要更频繁地运行它们,最好有 terraform 模块。

terraform
    |--frontend
    |  ???main.tf  
    |--backend-1
    |  ???main.tf
    |--backend-2
    |  ???main.tf
    |--modules-1
    |  ???module.tf
Run Code Online (Sandbox Code Playgroud)

在 module.tf 旁边,您可以定义需要应用的文件。

 module "frontend" {
  source = "terraform/fronend"
}

 module "backend-1" {
  source = "terraform/backend-1"
} 
Run Code Online (Sandbox Code Playgroud)

然后问题terraform apply停留在模块目录。它会自动在这些路径中导入实例并应用它。