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()。