如何使用Terraform生成yml配置文件
Terraform生成指定YAML配置文件的实现方法
你可以通过Terraform官方的local Provider提供的local_file资源实现需求,操作步骤如下:
- 首先在你的Terraform工作目录下创建TF配置文件(例如
main.tf),写入如下内容:
# 声明需要使用的local provider terraform { required_providers { local = { source = "hashicorp/local" version = "~> 2.4.0" } } } # 定义生成config.yml的资源 resource "local_file" "config_yml" { # 定义输出文件路径,${path.module}表示当前TF配置文件所在目录 filename = "${path.module}/config.yml" # 多行原始内容,会原样写入文件 content = <<-EOT this is a line this is 2nd line EOT }
- 执行
terraform init初始化项目,自动下载依赖的local provider - 执行
terraform plan预览变更,确认配置符合预期 - 执行
terraform apply并输入yes确认执行,执行完成后你就可以在配置指定的路径下看到生成的config.yml文件
如果你需要生成结构更复杂、包含动态变量的YAML文件,推荐使用yamlencode函数自动序列化内容,避免手动编写YAML出现格式错误,示例如下:
terraform { required_providers { local = { source = "hashicorp/local" version = "~> 2.4.0" } } } # 定义结构化的配置内容,支持插入动态变量 locals { config = { first_line = "this is a line" second_line = "this is 2nd line" # 可以继续添加其他字段,支持嵌套结构 } } resource "local_file" "config_yml" { filename = "${path.module}/config.yml" # 自动将结构化数据序列化为标准YAML格式 content = yamlencode(local.config) }
内容的提问来源于stack exchange,提问作者Neeraj Chimwal
相关产品推荐
相关产品推荐

