Terraform 供应商不工作 - 权限被拒绝
Terraform provisioner is not working - Permission denied
创建实例时,我在 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"
}
我遇到以下错误:
Error :cannot create /etc/ssh/sshd_config: Permission denied
or Permission denied
当您使用Terraform provisioner remote-exec
更改文件/etc/ssh/ssh_config
中需要root权限的内容时,命令sudo
是交互式的,您需要输入密码获得 root 权限,但 provisioner 没有。所以你不能在provisioner中输入密码,这样就显示你没有权限。
Terraform 供应器就像 运行 VM 中的脚本,它不支持我所知道的交互操作。如果您想与
VM,不使用 Terraform 只使用 SSH 连接。
更新
使用 SSH 命令连接到 VM:
ssh user@vm_ip
然后在虚拟机中你可以随意执行命令。
如果你想坚持使用 terraform,你可以 运行 如果在这一步之前允许 root 登录,则 remote-exec 作为 root 用户 - 然后使用 sudo 将过时。
另一种方法是使用 sudo NOPASSWD 选项 (read more)。
创建实例时,我在 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"
}
我遇到以下错误:
Error :cannot create /etc/ssh/sshd_config: Permission denied or Permission denied
当您使用Terraform provisioner remote-exec
更改文件/etc/ssh/ssh_config
中需要root权限的内容时,命令sudo
是交互式的,您需要输入密码获得 root 权限,但 provisioner 没有。所以你不能在provisioner中输入密码,这样就显示你没有权限。
Terraform 供应器就像 运行 VM 中的脚本,它不支持我所知道的交互操作。如果您想与 VM,不使用 Terraform 只使用 SSH 连接。
更新
使用 SSH 命令连接到 VM:
ssh user@vm_ip
然后在虚拟机中你可以随意执行命令。
如果你想坚持使用 terraform,你可以 运行 如果在这一步之前允许 root 登录,则 remote-exec 作为 root 用户 - 然后使用 sudo 将过时。
另一种方法是使用 sudo NOPASSWD 选项 (read more)。