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

Terraform执行mkdir命令提示no such file or directory报错问题咨询

报错原因
  • 核心问题是误用了local-exec provisioner的执行逻辑:local-exec的指令固定在运行Terraform命令的本地设备上执行,你在资源块中定义的SSH connection配置仅对remote-exec类的远程执行 provisioner 生效,完全不会作用于local-exec。
  • 你执行Terraform的本地环境不存在/home/user-a/父目录,因此执行mkdir时抛出no such file or directory错误;你直接在目标主机本地执行命令时路径存在,所以运行正常。
解决方案

根据你的实际使用场景选择对应方案即可:

场景1:需要在远程目标主机创建docker存储目录

将local-exec替换为remote-exec,即可调用你配置的SSH连接到目标主机执行创建命令,建议额外添加-p参数确保父目录不存在时也能自动创建完整路径,修正后的配置如下:

resource "null_resource" "dockerarm1"{
    connection {
        type     = "ssh"
        user     = "user-a"
        password = "sojfadsfsdfsa"
        host     = "dockerarm1.local"
      }
      provisioner "remote-exec" {
        command = "mkdir -p /home/user-a/docker"
    }
}

场景2:需要在运行Terraform的本地设备创建目录

删除无用的SSH连接配置,直接在local-exec的命令中添加-p参数即可:

resource "null_resource" "dockerarm1"{
      provisioner "local-exec" {
        command = "mkdir -p /home/user-a/docker"
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 13:57:03