是否可以向Terraform添加代码

时间:2017-06-01 07:40:26

标签: landscape terraform

让我们说我有两种不同的风景:AWS和Google Cloud(只有一个例子,可以是任何基础设施)。 它们都有很多种资源,变量等。可能使用和连接也不同。

我想在同一个Terraform脚本中使用它们,它甚至可能吗?或者每个景观都需要它自己的剧本?

我是否可以添加一些代码(如果支持哪种语言?)来识别格局并运行相关的资源/提供程序等。

提前致谢!

1 个答案:

答案 0 :(得分:0)

您可以在provider.tf文件中定义多个提供程序。我没有尝试过云提供商,但这是尝试的语法。

variable "aws_profile" {}

variable "region" {}

provider "aws" {
  alias  = "west"
  profile                 = "${var.aws_profile}"
  region                  = "${var.region}"
  shared_credentials_file = "~/.aws/credentials"
}

provider "google" {
  alias  = "central"
  credentials = "${file("account.json")}"
  project     = "my-gce-project"
  region      = "us-central1"
}

然后您可以指定该资源的提供者。

# West coast region
provider "aws" {
  alias  = "west"
  region = "us-west-2"
}
  

如果未指定提供程序,则使用默认提供程序配置(不设置别名的提供程序配置)。提供者字段的值为TYPE.ALIAS,例如上面的“aws.west”。

https://www.terraform.io/docs/configuration/providers.html

编辑:terraform加载顺序无关紧要。

https://www.terraform.io/docs/configuration/load.html