无法通过 terraform OCI 连接到远程主机,remote-exec

Not able to connect to remote host via terraform OCI ,remote-exec

提问人:Deepak 提问时间:2/27/2022 更新时间:2/27/2022 访问量:1197

问:

我是 Terraform 的新手,OCI。 因此,我现在尝试通过 Cloud shell 在 OCI 中的 Linux 主机上进行 ssh,但该主机位于私有子网中。所以我正在尝试以下命令,但出现超时错误。

你能告诉我我哪里弄错了吗

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",
        ]
    }
}
ssh terraform oracle-cloud-infrastructure 远程执行 terraform-provider-oci

评论


答:

0赞 Tapan Hegde 2/27/2022 #1

@Deepak..我想您不能使用私有 IP 连接到私有子网中的实例。在这种情况下,您将需要堡垒主机。在从 terraform 试用之前,您是否在 OCI 控制台中试用过?我相信您将无法仅通过私有 IP 连接到实例。如果要在 terraform 中完成设置,则需要为 bastion-host 创建资源,然后可以通过 bastion host 连接到私有子网实例。在这种情况下,远程执行块将具有堡垒主机 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

评论

0赞 Deepak 3/5/2022
是的,我正在尝试通过 Cloud Shell,现在使用了 bastian 主机 IP 地址,但仍然没有运气