Quickstart
From PrgmrWiki
When you sign up, you give me an OpenSSH format public key. I use that to give you ssh access to a simple text-based menu that lets you turn your domain on, off, and allows you to connect to the serial console. (well, in xen, if you want to access pygrub, you need to start the domain and connect to the console at the same time, so there is a 'start the domain up with console' option as well as a 'connect to console' option.)
The menu (here, the domain is called lsc) looks a bit like this:
Name ID Mem(MiB) VCPUs State Time(s) lsc 495 255 1 -b---- 1584.9 Options for lsc 1. console 2. create/start 3. shutdown 4. destroy/hard shutdown 5. reboot 6. exit >
Note, the menu operates on numbers, so to get to console, don't just type console, press 1.
>1
and it will let you in the console. If there is no prompt, press enter a few times. It is similar to a serial console and when you connect it only shows the output buffered since the last connection.
if it's not running, you want option 2 (note the unfortunate Xen nomenclature. Create means 'start' and 'destroy' means 'hard shutdown' - nothing on this menu does anything directly to your disk image.
In this case, the domain is running (note the 'xm list domain' output at the top) so if this is a new domain, we want option 1, console. Like other serial consoles, often you see nothing until you hit return, at which point you should see the normal login prompt
CentOS release 5.2 (Final) Kernel 2.6.18-53.1.14.el5xen on an i686 lsc login:
simply login as root, with the default password (right now, it is 'password' without quotes. This is safe because allowRootLogin in sshd config is set to no. but you should still immediately change the root password. If you don't, and you set allowRootLogin to yes, you will be almost immediately compromised.) I use a standard debian or centos image. All I've done is configured the base IP addresses, disabled root login via ssh, and given it a simple default root password. (safe because the only way you can get to a login prompt that will let you use it is via the serial console, which requires the public key you sent me) You do the rest of the setup. To quit the console press Ctrl-].
As for kernels, you maintain /boot/grub/menu.lst as you normally would. PyGrub will grab the kernel and initrd you choose and use it to start your domain. (the next server will be moving away from RHEL/CentOS and so will use the more secure PVGRUB but it should look the same from the customer end) so it really does look almost exactly like a serial console on a physical box. (there are a few gotchas... like if you change your grub config and shutdown -r, you will be on the old kernel, because pygrub only runs when the domain starts, not when it reboots. You need to halt it and then start it up again at the console. If I remember correctly, PVGRUB fixes this.)
The kernels you use must be compatible with xen. the kernel.org kernel now ships with config options to compile a kernel as a xen guest, and most distros have a package (in redhat, just yum install kernel-xen, in Debian and ubuntu, just apt-get install linux-image-xen if I remember correctly. remember to make sure xenblk is in your modules config so that when it makes an initrd it includes the xenblk driver, but I've done this on the default images, so the normal upgrade and initrd procedures 'just work')
We're working on a system where you can upload a tarball of the filesystem you want, though right now that takes manual intervention, so most people just use debian or centos images we provide.
But yeah, the whole system is setup for people who find it is easier to do something in linux than to convince a support person to do something, or to get some half-baked gui to do something. People who think that using ssh public key authentication is unnecessarily complex would probably be better served elsewhere.
details
Please note, when you first boot the domain, you see a menu.lst that is on my 'rescue image' - if you do not press a key, it falls through to a menu.lst on (hd0,0)/boot/grub/menu.lst. In this case, hd0,0 is the first partition of the writable image, usually /dev/xvda1.
Please note, we're using PVGRUB, which is based on an older version of Grub, so things work best if (hd0,0) is ext2 or ext3. Ext4 does not work. (though, if you use a kernel that supports ext4, you can use ext4 on other partitions.) Uh, I'm actually unsure if PVGRUB supports ufs... i should check.
More documentation for users can be found here: For Users and Getting Started
