Moving my VPS from VMware to Fuga was successful. First I copied the VMDK from the ESXi host to a Fuga instance with enough storage:
scp some.esxi.host:/vmfs/volumes/storage-node/autostatic1.autostatic.cyso.net/autostatic1.autostatic.cyso.net-flat.vmdk ./
And then converted it to QCOW2 with qemu-img
:
qemu-img convert -O qcow2 autostatic1.autostatic.cyso.net-flat.vmdk autostatic1.autostatic.cyso.net.qcow2
Next step was mounting it with guestmount
:
guestmount -a /var/www/html/images/autostatic1.autostatic.cyso.net.qcow2 -m /dev/sda8 /mnt/tmp/
And changing some settings, i.e. network and resolvconf. When that was done I unmounted the image:
guestunmount /mnt/tmp
And uploaded it to my Fuga tenant:
openstack image create --disk-format qcow2 --container-format bare --file /path/to/images/autostatic1.autostatic.cyso.net.qcow2 --private autostatic1.autostatic.cyso.net.qcow2
Last step was launching an OpenStack image from this image, I used Ansible for this:
- name: Launch OpenStack instance hosts: localhost connection: local gather_facts: no vars: os_flavor: c1.large os_network: int1 os_image: 5b878fee-7071-4e9c-9d1b-f7b129ba0644 os_hostname: autostatic1.autostatic.cyso.net os_portname: int-port200 os_fixed_ip: 10.10.10.200 os_floating_ip: 185.54.112.200 tasks: - name: Create port os_port: network: "{{ os_network }}" fixed_ips: - ip_address: "{{ os_fixed_ip }}" name: "{{ os_portname }}" - name: Launch instance os_server: state: present name: "{{ os_hostname }}" timeout: 200 flavor: "{{ os_flavor }}" nics: - port-name: "{{ os_portname }}" security_groups: "{{ os_hostname }}" floating_ips: "{{ os_floating_ip }}" image: "{{ os_image }}" meta: hostname: "{{ os_hostname }}"
And a few minutes later I had a working VPS again. While converting and uploading I made the necessary DNS changes and by the time my VPS was running happily on Fuga all DNS entries pointed to the new IP address.