Не удается подключиться к удаленному хосту через 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://medium.com/@harjulthakkar/connect-to-private-compute-instance-using-oci-bastion-service-ca96a3ceea49

https://registry.terraform.io/providers/hashicorp/oci/latest/docs/resources/bastion_bastion