You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Terraform local-exec provisioner用法及代码块解析咨询

Terraform local-exec 与代码解析

一、local-exec provisioner 的用途

  • 是Terraform的内置provisioner,作用是在执行Terraform命令的本地机器上运行指定命令,而非在创建的远程云资源(比如EC2实例)上执行
  • 主要用于资源创建完成后触发本地后续操作:比如调用配置管理工具(如Ansible)、发送部署通知、生成本地配置文件或日志等
  • 区别于remote-exec:后者是在远程资源上执行命令,而local-exec始终在本地运行

二、代码块含义解析

provisioner "local-exec" { 
    command = "ansible-playbook -u ubuntu --key-file ansible-key.pem -T 300 -i '${self.public_ip},', app.yml" 
  }

逐部分拆解命令参数:

  • provisioner "local-exec":声明使用本地执行类型的provisioner,告诉Terraform要在本地执行后续命令
  • command字段中的ansible-playbook命令详解:
    • -u ubuntu:指定连接远程主机时使用的SSH用户名为ubuntu
    • --key-file ansible-key.pem:指定SSH身份验证用的私钥文件路径为ansible-key.pem
    • -T 300:设置SSH连接超时时间为300秒(5分钟),适配远程主机初始化较慢的场景
    • -i '${self.public_ip},':通过Terraform插值表达式${self.public_ip}获取当前资源(比如EC2实例)的公网IP,作为Ansible的目标主机;末尾的逗号是Ansible要求的单个主机清单格式,避免被识别为组名
    • app.yml:指定要执行的Ansible Playbook文件,该文件包含了对远程主机的具体配置逻辑

内容的提问来源于stack exchange,提问作者PoppaDynasty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 15:37:34