Terraform Local Provider

验证:未记录
适用版本
未记录
验证范围
尚未登记验证记录。
本文缩写(英文全称与中文含义)
缩写 英文全称/名称 中文含义
CI Continuous Integration 持续集成
JSON JavaScript Object Notation 一种结构化数据格式
YAML YAML Ain’t Markup Language 常用于配置文件的数据序列化语言

用途#

在 Terraform 执行端创建文件,常用于生成配置文件或 Ansible inventory。普通内容使用 local_file,敏感内容使用 local_sensitive_file。

示例#

生成 JSON 配置文件,无需手动创建父目录。

terraform {
  required_providers {
    local = {
      source  = "hashicorp/local"
      version = "~> 2.0"
    }
  }
}

resource "local_file" "config" {
  filename             = "${path.module}/generated/app.json"
  file_permission      = "0644"
  directory_permission = "0755"
  content = jsonencode({
    environment = "dev"
    port        = 8080
  })
}

output "config_path" {
  value = local_file.config.filename
}

执行 terraform apply 后生成文件;修改 content 后再次 apply 会更新文件,销毁资源会删除文件。

注意事项#

  • 文件位于执行机器或 CI runner,不会自动上传到服务器。
  • 换机器后文件不存在时,plan 会提示重新创建;不要把临时 runner 的文件当作持久产物。
  • local_sensitive_file 隐藏常规输出,但内容仍写入磁盘和 state;敏感文件应限制权限。
  • 示例按根模块使用;复用模块应接收独立输出路径,避免多个实例写入同一文件。
  • 复杂文本用 templatefile() 渲染;JSON / YAML 优先使用 jsonencode() / yamlencode()。

参考#

搜索文档

输入关键词,搜索所有文档。

↑ ↓ 选择 · Enter 打开 · Esc 关闭