在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的同一位置。
请在这里提出问题。
答案 0 :(得分:0)
如@ydaetskcoR注释所示,您的代码private_key = "${file("~/.ssh/id_rsa")}"
指示私钥应位于您的主目录下的.ssh/id_rsa
,如Linux上的/home/username
或Windows上的C:\Users\username
。 / p>
您可以将该密钥(id_rsa)保存在该目录中作为代码,否则,您需要在代码中添加密钥的当前路径。
例如,将其编辑为private_key = "${file("${path.module}/id_rsa")}"