将配置从外部文件加载到地形

问题描述 投票:1回答:1

我使用terraforn提供一些Google基础架构。我想将一些配置变量存储在外部(非地形)配置文件中。这个想法是在Terraform和bash中也使用这些变量,所以我不想使用典型的.tfvars文件。如何实现?

我有三个文件,为简单起见,我们假设它们存储在同一目录中。

带有要提取的变量的常规配置文件:

# config.txt
GOOGLE_PROJECT_ID='my-test-name'
GOOGLE_REGION='my-region'

具有数据源的Terraform文件:

# datasources.tf
data "local_file" "local_config_file" {
  filename = "./config.txt"
}

具有变量的Terraform文件:

# variables.tf
variable "project_id" {}

variable "region" {
  default = 'europe-west3'
}
terraform datasource
1个回答
0
投票

如果要在Terraform中使用的所有变量都是字符串型变量,则可以将它们定义为环境变量,以在Terraform和Bash脚本中使用它们:

Terraform将以TF_VAR_name的形式读取环境变量以查找变量的值。例如,可以在外壳中设置TF_VAR_region变量以在Terraform中设置区域变量。

# config.sh
export TF_VAR_region="my-region"
export TF_VAR_project_id="my-test-name"

请注意,此方法不适用于列表或地图类型变量:

注意:环境变量只能填充字符串类型的变量。列表和映射类型变量必须通过其他机制之一填充。

See the docs here for more information.

© www.soinside.com 2019 - 2024. All rights reserved.