Terraform Provisioners

本文缩写(英文全称与中文含义)
缩写 英文全称/名称 中文含义
CI Continuous Integration 持续集成
CLI Command-Line Interface 命令行接口
SSH Secure Shell 安全远程登录协议
WinRM Windows Remote Management Windows 远程管理

Provisioner 在资源生命周期中执行命令或传输文件,无需安装额外 provider。

Provisioner 执行位置 用途
local-exec 运行 Terraform 的机器或 CI runner 调用本地脚本、CLI
remote-exec 通过 SSH / WinRM 连接的目标机器 执行远程命令或脚本
file 从 Terraform 执行端传输到目标机器 上传文件或目录

使用原则#

  • 优先使用 provider resource、cloud-init 或配置管理工具;Terraform 无法追踪命令产生的状态变化。
  • 默认在所属资源创建时执行,不会在每次 apply 或普通更新时执行。
  • 示例使用 Terraform 1.4+ 内置的 terraform_data 承载命令,triggers_replace 变化时替换该资源并重跑。
  • 默认失败会中止操作;创建阶段失败还会将所属资源标记为 tainted,后续 plan 通常会安排替换。命令应支持重复执行。
  • when = destroy 在销毁前执行;直接删除整个资源配置块不会执行其中的销毁命令。

参考#

搜索文档

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

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