use these apt lines (no, they don't have a "stable" symlink - just a "nightly" one):
deb http://eucalyptussoftware.com/downloads/repo/eucalyptus/1.6.2/debian/ squeeze main
deb http://www.eucalyptussoftware.com/downloads/repo/euca2ools/1.2/debian squeeze main
NB: When registering you cannot use localhost, or often even the hostname - you'll just get "error" spat back at you via the GUI or CLI. You _must_ use a non 127.x IP address. /var/log/eucalyptus/cloud-error.log will say:
Components cannot be registered using local, link-local, or multicast addresses.
{node-cert.pem,cluster-cert.pem,node-pk.pem,cloud-cert.pem} node:/var/lib/eucalyptus/keys (obviously that's an illegal command, but you get the idea)
euca_conf --register-sc
Now register a node:
euca_conf --register-nodes "
...
"
this failed with:
ERROR: you need to be on the CC host and the CC needs to be running.
"/etc/init.d/eucalyptus-cc restart" fixed this
even so, it still fails since it tries to rsync (as current user) /var/lib/eucalyptus/keys to node0
which is bad since it's the current box...
fortunately it tells you what commands to type in - something like this:
ERROR: could not synchronize keys with 192.168.101.10!
The configuration will not have this node.
Hint: to setup passwordless login to the nodes as user eucalyptus, you can
run the following commands on node 192.168.101.10:
sudo -u eucalyptus mkdir -p ~eucalyptus/.ssh
sudo -u eucalyptus tee ~eucalyptus/.ssh/authorized_keys > /dev/null <
it also complained that:
Warning: cannot file file node-cert.pem in //var/lib/eucalyptus/keys/
Warning: cannot file file cluster-cert.pem in //var/lib/eucalyptus/keys/
Warning: cannot file file node-pk.pem in //var/lib/eucalyptus/keys/
this seems to be bug 439087 and fixed by the extra copies we do above now unless the node you add is elsewhere in which case you need to:
scp clustercontroller:/var/lib/eucalyptus/keys/{node-cert.pem,cluster-cert.pem,node-pk.pem,cloud-cert.pem} node:/var/lib/eucalyptus/keys (obviously that's an illegal command, but you get the idea)
You must also change libvirt to run as "eucalyptus" (rather than the standard libvirt-qemu):
edit /etc/libvirt/qemu.conf:
user="eucalyptus"
/etc/init.d/libvirt-bin restart
I had old copies lying around, so ensure it's restarted and only one copy is running
edit /etc/eucalyptus/eucalyptus.conf and check these values (NB: you probably want eth0, not wlan1):
HYPERVISOR="kvm"
VNET_BRIDGE="br0"
VNET_PUBINTERFACE="wlan1"
VNET_PRIVINTERFACE="wlan1"
ensure eucalyptus is in the libvirt group (id eucalyptus), and if it is missing:
oh dear it's died. look in /var/log/eucalyptus/nc.log:
[EUCAFATAL ] error: insufficient disk capacity remaining (2042MB) in VM Type of instance i-i-482D07A3 for component disk
aha we mention this in #Errors, so we increase the m1.small disk allowance to 3GB, only to get this:
[EUCAINFO ] currently running/booting: i-i-49BA093C
[EUCAERROR ] libvirt: monitor socket did not show up.: Connection refused (code=38)
[EUCAFATAL ] hypervisor failed to start domain
we could look in /var/log/libvirt/qemu/i-49BA093C to see what went wrong, but for the sake of completeness, let's dig deeper
now we set "MANUAL_INSTANCES_CLEANUP=1 in /etc/eucalyptus/eucalyptus.conf, restart the NC and try again
[EUCAINFO ] vrun(): [//usr/lib/eucalyptus/euca_rootwrap //usr/share/eucalyptus/add_key.pl
//usr/lib/eucalyptus/euca_mountwrap 32256 /var/lib/eucalyptus/instances/admin/i-482D07A3/disk ]
[EUCADEBUG ] system_output(): [//usr/lib/eucalyptus/euca_rootwrap //usr/share/eucalyptus/gen_kvm_libvirt_xml
--ramdisk --ephemeral]
[EUCAINFO ] currently running/booting: i-482D07A3
[EUCAERROR ] libvirt: monitor socket did not show up.: Connection refused (code=38)
[EUCAFATAL ] hypervisor failed to start domain
same problem of course, but now we can debug it by looking at it
cd /var/lib/eucalyptus/instances/admin/i-482D07A3
edit libvirt.xml appropriately, some suggestions:
add "
" in the "devices" section
now when the instance is running, if you run "ps axf" you'll see part of the command is "-vnc 0.0.0.0:2" or similar, run "xvncviewer :2" to attach VNC to it
virsh define libvirt.xml
Domain i-482D07A3 defined from libvirt.xml
virsh start i-482D07A3
error: Failed to start domain i-482D07A3
error: monitor socket did not show up.: Connection refused
looking in /var/log/libvirt/qemu/i-482D07A3.log shows:
ext3: No journal on filesystem on sda2
mount: wrong fs type, bad option, bad superblock on /dev/sda2,
mountall: mount /mnt [363] terminated with status 32
mountall: Filesystem could not be mounted: /mnt
This is due to Eucalyptus creating ext2 filesystems, not ext3 ones
/etc/init.d/ec2-init on the Karmic images tries to fix this but presumably not early enough
or we could alter partition2disk (x2) and euca_mountwrap.c
When an instance is started, a copy of the EMI is created as part of the instance's storage. In fact the instance normally gets three pieces of storage on Eucalyptus (Eucalyptus storage locations):
/dev/sda1: EMI image as a root filesystem (mounted on /)
/dev/sda2: ephemeral (short term) storage (mounted on /mnt) of whatever space is left in the VM type
/dev/sda3: swap (according to what is set in /etc/eucalyptus/eucalyptus.conf, however the maths seems inaccurate - I had 640MB swap, not 512MB)
However there are inconsistencies between different types on EC2. Eucalyptus is self consistent so this can cause differences. (Amazon storage locations):
/dev/sda1: EMI image as a root filesystem (mounted on /)
/dev/sda2: ephemeral (short term) storage (mounted on /mnt) for m1.small and c1.medium VM types
/dev/sda3: swap for m1.small and c1.medium types
/dev/sdb: ephemeral (short term) storage (mounted on /mnt) for all other types
Volume: Storage services are not available for the requested availability zone.
Check the Storage Controller details in the web interface
volume fails to attach
nc.log contains "libvirt: cannot open file '/dev/etherd/e0.1': No such file or directory (code=38)"
sadly this seems to be a known issue - you can't currently use storage where the NC (node controller - where the VMs run) is on the same box as the SC (storage controller)
brief attempt to work around this, installed iscsitarget (and ran it), added 'DISABLE_ISCSI="N"' to /etc/eucalyptus/eucalyptus.conf and restarted
Hanging on "Waiting for EC2 meta-data service" (see 424065 although this _is_ Eucalyptus - maybe I need to setup more networking?)
FIX: see Network config - this is because we are running in SYSTEM mode and not MANAGED so we need to set this up manually on each node (see #Networking)
Or for a bad workaround, add 'ec2init=0' to the command line (by editing gen_kvm_libvirt_xml")
2009-08-06 13:36:28,607 INFO : Cleaning up
Traceback (most recent call last):
File "/usr/bin/vmbuilder", line 29, in
VMBuilder.run()
File "/usr/lib/python2.5/site-packages/VMBuilder/__init__.py", line 65, in run
frontend.run()
File "/usr/lib/python2.5/site-packages/VMBuilder/plugins/cli/__init__.py", line 68, in run
vm.create()
File "/usr/lib/python2.5/site-packages/VMBuilder/vm.py", line 483, in create
self.install()
File "/usr/lib/python2.5/site-packages/VMBuilder/vm.py", line 416, in install
self.distro.install_bootloader()
File "/usr/lib/python2.5/site-packages/VMBuilder/plugins/ubuntu/distro.py", line 164, in install_bootloader
EOT''')
File "/usr/lib/python2.5/site-packages/VMBuilder/util.py", line 105, in run_cmd
proc = subprocess.Popen(args, stdin=stdin_arg, stderr=subprocess.PIPE, stdout=subprocess.PIPE, env=proc_env)
File "/usr/lib/python2.5/subprocess.py", line 594, in __init__
errread, errwrite)
File "/usr/lib/python2.5/subprocess.py", line 1153, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory