Не удается подключиться к удаленному хосту через terraform OCI, remote-exec
Я новичок в Terraform, OCI. Итак, теперь я пытаюсь подключиться по ssh к хосту Linux в моем OCI через облачную оболочку, но этот хост находится в частной подсети. Итак, я пытаюсь выполнить команду ниже, но получаю ошибку тайм-аута.
Не могли бы вы сказать мне, где я ошибаюсь
resource "null_resource" "remote-exec" {
provisioner "remote-exec" {
connection {
agent =false
timeout = "5m"
host ="xx.xx.xx.x" --- This is in a private subnet(private ip address to connect to linux env)
user = var.host_user_name
private_key =file("${path.module}/sshkey.pem")
}
inline = [
"sleep 10",
"sudo su - oracle",
"source EBSapps.env run",
"cd /u01/",
"touch ytest.txt",
]
}
}
1 ответ
@Deepak .. Я думаю, вы не можете подключиться к экземпляру в частной подсети, используя частный IP-адрес. В этом случае вам понадобится хост-бастион. Прежде чем попробовать это из terraform, вы пробовали это из консоли OCI? Я полагаю, что вы не сможете подключиться к экземпляру только по частному IP-адресу. Если вы хотите выполнить полную настройку в terraform, вам нужно будет создать ресурс для бастионного хоста, а затем вы сможете подключиться к частному экземпляру подсети через бастионный хост. В этом случае ваш удаленный исполнительный блок будет иметь IP-адрес узла-бастиона. Что-то похожее на ниже
provisioner "remote-exec" {
connection {
agent =false
timeout = "5m"
host ="xx.xx.xx.x" --- This should be bastion host IP
user = var.host_user_name
private_key =file("${path.module}/sshkey.pem")
}
Использованная литература:
https://registry.terraform.io/providers/hashicorp/oci/latest/docs/resources/bastion_bastion