diff --git a/prepare.py b/prepare.py
index 3297776c56d296664b65657cb696da539c6780aa..269cc4aa942f00a8c3727c34c5856bb6d4bae369 100644
--- a/prepare.py
+++ b/prepare.py
@@ -1,7 +1,7 @@
 #!/usr/bin/env python
 import sys
 import traceback
-import os
+import ipaddress
 import openstack
 import paramiko
 from tenacity import retry
@@ -29,6 +29,7 @@ def provision_server(
         auto_ip=False,
         boot_from_volume=True,
         terminate_volume=True,
+        wait=True,
         volume_size=env.VOLUME_SIZE,
         key_name=env.KEY_PAIR_NAME,
         security_groups=[group for group in env.SECURITY_GROUPS.split()],
@@ -47,11 +48,12 @@ def provision_server(
 def get_server_ip(
     conn: openstack.connection.Connection, server: openstack.compute.v2.server.Server
 ) -> str:
-    if env.SSH_IP_VERSION == "4":
-        return list(conn.compute.server_ips(server))[2].address
-    else:
-        return list(conn.compute.server_ips(server))[0].address
-
+    ips = [ipaddress.ip_address(ip) for ip in list(conn.compute.server_ips(server.id))]
+    print(ips)
+    for ip in ips:
+        if env.SSH_IP_VERSION == str(ip.version) and ip.is_global:
+            return str(ip)
+        
 
 def check_ssh(ip: str) -> None:
     ssh_client = paramiko.client.SSHClient()