Terraform 中的 provisioner 应谨慎使用,主要在其他声明式选项不足时使用。它们适用于无法通过 Terraform 的资源配置或数据源完成的任务。常见场景包括在新建服务器上运行初始化脚本、安装 provider 特定资源未涵盖的软件,或执行一次性设置任务。Provisioner 对于引导配置管理工具或处理 Terraform 无法直接管理的复杂有状态操作很有用。然而,由于它们可能使 Terraform 运行变得不可预测且难以管理,应将其视为最后手段。只要可能,应优先使用 cloud-init 脚本、自定义镜像或单独的配置管理工具。当必须使用 provisioner 时,应将其设计为幂等且能容忍失败,以保持 Terraform 期望状态的一致性。