致电模块而无需本地的TF文件

  • 本文关键字:TF 文件 模块 terraform
  • 更新时间 :
  • 英文 :


我有这个TF文件:

variable "var1" {}
variable "var2" {}
terraform {
  backend "s3" {
  }
}
module "my-module" {
  arg1 = "${var.eb_application_name}"
  arg2 = "${var.eb_environment_name}"
  source = "git::ssh://git@bitbucket.org/blah/my-module.git//my-sub-module
}
output "myoutput" {
  value = "${module.my-module.myoutput}"
}

我从控制台运行这些命令:

terraform init -backend-config='region=us-east-1' -backend-config='key=mykey' -backend-config='bucket=mys3-bucket' 
terraform apply -var 'var1=balh' -var 'var2=blah'

我想从控制台命令中完成所有这些操作,包括调用我的模块。查看我的TF文件,我可以用论证对Terraform进行所有这些操作,还是必须有一个TF文件?也许有一种方法可以将TF文件作为原始文本传递(例如环境变量)?

最后,我得到了您的需求。

您可以定义每个模块的变量,例如:

variable "my-module-enable" {
  default = true
}

然后使用count作为开关来启用或禁用此模块。

module "my-module" {
  count = "${var.my-module-enable ? 1 : 0 }"
  arg1 = "${var.eb_application_name}"
  arg2 = "${var.eb_environment_name}"
  source = "git::ssh://git@bitbucket.org/blah/my-module.git//us-east-1"
}

然后,您可以通过Terraform Args轻松控制它

terraform apply -var 'my-module-enable=false'

最新更新