azure - 无法在 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 的同一位置。
请提出这里有什么问题。
解决方案
正如@ydaetskcoR 评论,您的代码private_key = "${file("~/.ssh/id_rsa")}"
表明私钥应该存在于.ssh/id_rsa
您的主目录下,如/home/username
Linux 或C:\Users\username
Windows 上。
您可以将该目录中的密钥 (id_rsa) 作为代码保存,否则,您需要在代码中添加密钥的当前路径。
例如,将其编辑为private_key = "${file("${path.module}/id_rsa")}"
推荐阅读
- php - PHP 脚本 - 注释/取消注释行
- r - R:用“嵌套”变量绘制 ggplot 条
- javascript - 有没有办法确定参数是否是 JavaScript 中的方法?
- .htaccess - .htaccess 将所有子域重定向到相应的文件夹
- javascript - 链接从生成器函数返回的承诺
- docker - 如何使用单个 docker compose 在不同目录中构建容器
- python - 关于霍夫变换及其绘图(3点绘制)
- spring-boot - 如何使用 JUnit5 正确设置 Spring Boot 2.2 REST 完全集成测试
- java - 为什么我在JAVA中得到这个“表达式的类型必须是数组类型但解析为字符串”
- reactjs - 在 React 中为大文件(超过 4kb)加载 WASM 模块的正确方法