Bundling CentOS Image with VNC access for OpenStack
This article explains how to create a CentOS 6 image with VNC access on KVM for uploading it to the image store on OpenStack Diablo. I have used KVM running on Ubuntu 11.10 64-bit server for creation of the image.
The first step would be to create a qcow2 image. This will represent the main HDD of the virtual machine, so make sure to give it as much space as you will need.
kvm-img create -f qcow2 centos.img 5G
Boot Virtual Machine from the CD.
kvm -m 1024 -cdrom CentOS-6.0-i386-bin-DVD.iso -drive file=centos.img,if=virtio,index=0 -boot d -net nic -net user -nographic -vnc :1
Connect to the Virtual Machine through VNC (use display number :1).For Example, where 10.10.10.1 is the IP address of the host machine.
vncviewer 10.10.10.1 :1
Boot the Virtual Machine
kvm -m 1024 -drive file=centos.img,if=virtio,index=0,boot=on -boot c -net nic -net user -nographic -vnc :1
Install VNC server and perform the following steps.
yum install vnc-server chkconfig vncserver off service vncserver stop yum install xinetd
Edit /etc/gdm/custom.conf and add the following lines
[xdmcp] Enable=true [security] DisallowTCP=false
Edit the file /etc/services and comment the following lines
vnc-server 5900/tcp # VNC Server vnc-server 5900/udp # VNC Server
and add the following line
vnc1024 5900/tcp # VNC and GDM
create a file /etc/xinetd.d/vnc1024 and add the following lines
service vnc1024 { disable = no socket_type = stream protocol = tcp group = tty wait = no user = nobody server = /usr/bin/Xvnc server_args = -inetd -query localhost -geometry 1024×768 -depth 16 -once -fp /usr/share/X11/fonts/misc -securitytypes=none }
Run the following command to check whether VNC is accessible.
service xinetd restart
Shutdown the Virtual Machine. Upload the image to OpenStack using the following command
cloud-publish-image amd64 centos.img centosbucket
The following output shows that the image has been successfully uploaded.
ami-00000001 centosbucket/centos.img.manifest.xml
Verify whether the instance boots from the uploaded image.
euca-run-instances ami-00000001 -k mykey -t m1.small
Leave a comment