This blog post refers to the limitation of not being able to directly spin an instance using an ISO image and to connect a virtual CD ROM with AWS instances. Till date, only workaround for this problem is to create an on-premise virual machine on some hypervisor such as VMware esxi or Cetrix Xen etc. and then import VMDK or VHD image of that instance to AWS EC2 using AWS import/export which is a complex and tiring job.
However, ISO files can directly be connected through virtual cdrom appliance using a proprietary tool Ravello. Using it, ISO can be uploaded to Ravello platform and make a custom OS installation or launch a VM from it and also allow to publish it to AWS or Google public cloud. To achieve this functionality, “Ravello VM Import Tool” is to be installed using following steps.
# apt-get install Python 2.7 python-setuptools
Ravello VM Import Tool can be downloaded and installed using commands given below,
# wget http://import-tool.ravellosystems.com/linux/ravello_linux.tar.gz
# tar -zxvf ravello_linux.tar.gz
# cd ravello (go to ravello location)
# sudo ./installer.sh (run installer.sh as root to install ravello client)
# ravello server (web GUI at 127.0.0.1:8881)
Signup at ravello system website and login (for a 14-day trial). Go to libraries > Disk images and click on import disk image,
It will be redirected to Ravello VM Import Tool installed on local machine. Login using earlier created credentials, browse and upload the ISO file (ISO upload will take time depending on its size). After, successful upload, create an application.
While creating an application, do not check on “from blueprint” option so that instead of using predefined blueprints, recently uploaded ISO can be used to setup customized instance.
Create an empty Virtual Machine. Go to Applications > appname (in this case, trial), drag and drop an empty VM to the canvas.
All the configuration details are given at the right side of the screen, Edit them as follows,
In the disk section, add a disk, browse for uploaded operating system ISO and make it bootable.
Virtual cdrom can also be added in this section and any ISO can be mounted on it.
Similarly, network interfaces or any other device or appliance can be added or removed. Public or elastic IP option can also be selected for the instances. After making all the necessary configurations, save it and publish it on either AWS or Google cloud. Ravello currently works only in North Virginia region of AWS and us-central1 of Google cloud.
After successful import of instance on AWS EC2, all the buttons below instance details will become active. Click on the console button and it will give you the GUI of Operating System installation.