Skip to content

Getting Started

vJailbreak works by running itself as a VM on the target OpenStack cloud. It connects remotely to the VMware vSphere environment to perform the migration. vJailbreak uses the VMware VDDK library to interact with the VMware environment and perform the necessary disk copy operations.

It also uses the OpenStack SDK to interact with the OpenStack environment and perform the necessary provisioning operations including creation of volumes, VMs.

Network and access requirements

Ensure that your vJailbreak VM can communicate with your OpenStack and VMware environments. This includes any setup required for VPNs, etc.

Further details can be found in Prerequisites.

Install ORAS and download vJailbreak

Download and install ORAS, a toolkit to download the qcow2 image of vJailbreak. Then, download the latest version of the vJailbreak image with the following command:

Terminal window
# remember the actual version would vary
oras pull quay.io/platform9/vjailbreak:v0.3.1

This will download the vJailbreak qcow2 folder containing the image locally in the current directory named vjailbreak_qcow2/vjailbreak-image.qcow2.

Upload image to OpenStack

These example instructions are for any version of Private Cloud Director - Platform9 hosted, self-hosted, or Community Edition - but can be adapted for any OpenStack-compliant cloud.

  • Follow the instructions in Private Cloud Director > Images > Import with CLI to upload the image from the command line.
  • Upload vjailbreak-image.qcow2 to your image library.
    Terminal window
    openstack image create --os-interface admin --insecure --container-format bare --disk-format qcow2 --file vjailbreak-image.qcow2 vjailbreak-image.qcow2

Create vJailbreak VM

  • Deploy a new VM from the uploaded image, choosing the m1.xlarge flavor (use larger flavor for larger VM migration).
  • Choose a network that can reach your VMware vCenter environment.
  • Assign a network security group that allows inbound and outbound traffic.

Configure VM with cloud-init

Cloud-init can be used during VM creation to automate initial configuration including setting passwords and configuring /etc/hosts entries for DNS resolution.

  • When creating the VM, use a cloud-init configuration script to:

    • Set a password for the ubuntu user
    • Add static DNS entries to /etc/hosts
    #cloud-config
    password: your-secure-password
    chpasswd: { expire: False }
    ssh_pwauth: True
    write_files:
    - path: /etc/hosts.append
    append: true
    content: |
    # VMware and OpenStack endpoints
    192.168.1.100 vcenter.example.com
    192.168.2.100 openstack.example.com
    runcmd:
    - cat /etc/hosts.append >> /etc/hosts
  • You can provide this cloud-init configuration when creating the VM through the OpenStack dashboard or CLI.

Copy VDDK Libraries

VMware VDDK library is required for vJailbreak to interact with the VMware environment and it must be configured in the vJailbreak VM.

  • Copy the latest version of the VDDK libraries for Linux into /home/ubuntu of the vJailbreak VM. Untar it to a folder named vmware-vix-disklib-distrib in the /home/ubuntu directory.

Configure DNS Resolution

Proper DNS resolution for your VMware and OpenStack URLs is required for vJailbreak to function correctly. You can either configure this during VM creation with cloud-init (as shown above) or modify the configuration after VM deployment.

Important: DNS resolution for all ESXi hosts must be properly configured in your environment. This is specifically required during the VM copy phase of migration. Without proper DNS resolution for ESXi hosts, the migration process may fail.

  • Static Entries: If you didn’t configure /etc/hosts entries during VM creation with cloud-init, you can add them manually. Changes to /etc/hosts apply immediately.

    Terminal window
    # Example manual addition to /etc/hosts
    sudo sh -c 'echo "192.168.1.100 vcenter.example.com" >> /etc/hosts'
    sudo sh -c 'echo "192.168.2.100 openstack.example.com" >> /etc/hosts'
    # ESXi hosts entries (required for VM copy phase)
    sudo sh -c 'echo "192.168.1.101 esxi01.example.com esxi01" >> /etc/hosts'
    sudo sh -c 'echo "192.168.1.102 esxi02.example.com esxi02" >> /etc/hosts'
  • DNS Configuration: If modifying /etc/resolv.conf to use DNS servers instead of static entries, you must restart the controller pod for changes to take effect

    Terminal window
    # After modifying resolv.conf
    kubectl -n vjailbreak rollout restart deployment migration-controller-manager

Launch vJailbreak

  • Connect to the vJailbreak UI using the IP address assigned during VM creation.
  • Start the migration process by providing the VMware vCenter and OpenStack admin.rc credentials.
  • Select the VMs you wish to migrate and complete the rest of the migration form.
  • Migrate your VMs.

Scaling vJailbreak

Read more about scaling vJailbreak.