创建实例时,我在terraform中的预配器部分下运行。但它不起作用,显示权限被拒绝错误。
provisioner "remote-exec" {
inline = [
"sudo cat /etc/ssh/sshd_config | sed -e 's/#MaxStartups 10:30:60/MaxStartups 10:30:60/' >/etc/ssh/sshd_config1",
"sudo mv -f /etc/ssh/sshd_config1 /etc/ssh/sshd_config"
]
}
或
provisioner "file" {
source = "script.sh"
destination = "/tmp/script.sh"
}
我遇到以下错误:
错误:无法创建/ etc / ssh / sshd_config:权限被拒绝或权限被拒绝
[当您使用Terraform供应商remote-exec
更改文件/etc/ssh/ssh_config
中需要root许可的内容时,命令sudo
是交互式的,您需要输入密码才能获得root许可,但是供应商是不。因此,您无法在配置程序中输入密码,从而显示您没有权限。
Terraform供应商仅喜欢在VM内运行脚本,但据我所知,它不支持交互式操作。如果您想使用VM,只需使用没有Terraform的SSH连接即可。
更新
使用SSH命令连接到VM:
ssh user@vm_ip
然后在VM内,您可以根据需要执行命令。