summaryrefslogtreecommitdiff
path: root/doc/sources/ovf/README
diff options
context:
space:
mode:
Diffstat (limited to 'doc/sources/ovf/README')
-rw-r--r--doc/sources/ovf/README83
1 files changed, 83 insertions, 0 deletions
diff --git a/doc/sources/ovf/README b/doc/sources/ovf/README
new file mode 100644
index 00000000..e3ef12e0
--- /dev/null
+++ b/doc/sources/ovf/README
@@ -0,0 +1,83 @@
+This directory contains documentation and a demo of the OVF
+functionality that is present in cloud-init.
+
+The example/ directory contains the following files:
+ example/ovf-env.xml
+ This is an example ovf environment file
+ to make an iso that qualifies for the ISO transport, do:
+ mkdir my-iso
+ cp environment.xml my-iso/ovf-env.xml
+ genisoimage -o transport.iso -r my-iso
+ Then, boot with that ISO attached as a CDrom
+- example/ubuntu-server.ovf
+ Example generated by virtualbox "export" of a simple VM.
+ It contains a functional ProductSection also. Given answers
+ to each of the Properties there, a suitable OVF environment file
+ (ovf-env.xml) could be created.
+
+== Demo ==
+In order to easily demonstrate this functionality, simple demo is
+contained here. To boot a local virtual machine in either kvm or virtual
+box, follow the steps below.
+
+- download a suitable Ubuntu image
+ Visit http://cloud-images.ubuntu.com/releases and download a disk image
+ of Natty, Oneiric or a newer release.
+
+ $ burl="http://cloud-images.ubuntu.com/releases/"
+ $ disk="ubuntu-11.10-server-cloudimg-i386-disk1"
+ $ wget "$burl/11.10/release/$disk.img" -O "$disk.img"
+
+- If you're going to use virtual box, you will need to convert the image
+ from qcow2 format into a virtual-box friendly VHD format.
+ $ qemu-img convert -O vdi "$disk.img" "ubuntu.vdi"
+
+- If you're using kvm, you should create a qcow delta image to store
+ the changes so you keep the original pristine.
+ $ qemu-img create -f qcow2 -b "$disk.img" "ubuntu.qcow2"
+
+ Optionally, you could decompress the image, which will make it boot faster
+ but will take up more local disk space.
+ $ qemu-img convert -O qcow2 "$disk.img" "$disk.qcow2"
+ $ qemu-img create -f qcow2 -b "$disk.qcow2" ubuntu.qcow2
+
+- Create an ISO file that will provide user-data to the image.
+ This will put the contents of 'user-data' into an ovf-env.xml file
+ and create an ISO file that can then be attached at boot to provide
+ the user data to cloud-init.
+
+ $ ./make-iso ovf-env.xml.tmpl user-data --output ovftransport.iso
+
+- Boot your virtual machine
+ The cloud-images boot with kernel and boot progress to ttyS0.
+ You can change that at the grub prompt if you'd like by editing the
+ kernel entry. Otherwise, to see progress you'll need to switch
+ to the serial console. In kvm graphic mode, you do that by clicking
+ in the window and then pressing pressing 'ctrl-alt-3'. For information
+ on how to do that in virtualbox or kvm curses, see the relevant
+ documentation.
+
+ KVM:
+ $ kvm -drive file=ubuntu.qcow2,if=virtio -cdrom ovftransport.iso \
+ -m 256 -net nic -net user,hostfwd=tcp::2222-:22
+
+ VirtualBox:
+ - Launch the GUI and create a new vm with $disk.vdi and ovftransport.iso
+ attached.
+ - If you use 'NAT' networking, then forward a port (2222) to the
+ guests' port 22 to be able to ssh.
+
+ Upon successful boot you will be able to log in as the 'ubuntu' user
+ with the password 'passw0rd' (which was set in the 'user-data' file).
+
+ You will also be able to ssh to the instance with the provided:
+ $ chmod 600 ovfdemo.pem
+ $ ssh -i ovfdemo.pem -p 2222 ubuntu@localhost
+
+- Notes:
+ * The 'instance-id' that is set in the ovf-env.xml image needs to
+ be unique. If you want to run the first-boot code of cloud-init
+ again you will either have to remove /var/lib/cloud ('rm -Rf' is fine)
+ or create a new cdrom with a different instance-id. To do the
+ ladder, simply add the '--instance-id=' flag to the 'make-iso'
+ command above and start your vm with the new ISO attached.