
Each datasource had a bit of doc with it, and those were just landing in doc/. I've moved them to doc/sources now.
84 lines
3.5 KiB
Plaintext
84 lines
3.5 KiB
Plaintext
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.
|