我是Terraform的初学者。
我有一个包含2个.tf文件的目录。
现在我想在选定的.tf文件&上运行Terraform Apply。忽略了另一个。
我能这样做吗?如果有,怎么样?如果不是,为什么&什么是最佳做法?
答案 0 :(得分:5)
您无法有选择地应用一个文件,然后选择另一个文件。两种方式(可能)实现你的目标:
-target
标志在一个文件中定位资源,然后使用另一个文件。apply
。答案 1 :(得分:2)
您可以使用constructor(private fb: FormBuilder) { }
method() {
this.testForm.addControl('new', this.fb.control('', Validators.required));
}
标志。要么
您可以在单独的目录中拥有多个Terraform模块。然后您可以terraform -target
在那里。
例如,假设您分别有3个.tf文件。但是,您需要运行的不只是其中之一。如果您需要更频繁地运行它们,最好使用terraform模块。
terraform apply
在module.tf旁边,您可以定义需要应用的文件。
terraform
|--frontend
| └──main.tf
|--backend-1
| └──main.tf
|--backend-2
| └──main.tf
|--modules-1
| └──module.tf
然后,问题 module "frontend" {
source = "terraform/fronend"
}
module "backend-1" {
source = "terraform/backend-1"
}
位于模块目录中。它将自动在这些路径中导入实例并应用它。
答案 2 :(得分:1)
将每个terraform配置文件放到单独的目录中可以正确完成此工作。 这是我的结构
├── aws
│ └── aws_terraform.tf
├── trash
│ └── main.tf
所有您需要做的:
PS:“-target”键没有帮助我。
答案 3 :(得分:0)
使用以下命令通过--target
选项指定要运行的模块
terraform apply -target=module.<module_name>
另一个解决方法是,将其他具有扩展名*.tf.disable
的terraform文件重命名,以通过Terraform加载来跳过该文件。当前正在Code加载*.tf
文件