首页 > 解决方案 > 无法在 Azure terraform 中执行“remote-exec”配置程序

问题描述

我在 Azure 中部署 VM 时尝试执行 remote-exec 配置程序,但 remote-exec 中的内联代码永远不会执行。

这是我的供应商和连接代码:

provisioner "remote-exec" {

    inline = [
    "touch newfile.txt",
    "touch newfile2.txt",
    ]
}

connection {
        type = "ssh"
        host = "${azurerm_public_ip.publicip.ip_address}"
        user  = "testuser"
        private_key = "${file("~/.ssh/id_rsa")}"
        agent = false
}

代码从不执行并给出错误:错误:无法读取 ssh 私钥:未找到密钥

密钥 (id_rsa) 保存在我运行 main.tf 文件的 VM 的同一位置。

请提出这里有什么问题。

标签: azureterraform

解决方案


正如@ydaetskcoR 评论,您的代码private_key = "${file("~/.ssh/id_rsa")}"表明私钥应该存在于.ssh/id_rsa您的主目录下,如/home/usernameLinux 或C:\Users\usernameWindows 上。

您可以将该目录中的密钥 (id_rsa) 作为代码保存,否则,您需要在代码中添加密钥的当前路径。

例如,将其编辑为private_key = "${file("${path.module}/id_rsa")}"


推荐阅读