Thought I'd give this a try. Still in progress, but a couple of pointers to pass on to anyone who wants to give it a go.
1) First, make sure you get the latest source from CVS. There are a couple of bugs in parsing arguments that have been fixed (as noted in https://listman.redhat.com/archives/fedora-devel-list/2004-November/msg00233 .html).
check
2) Even with the latest code, there is a typo on line 96 of stateless-snapshooter.py ("--protosytem" should be "--protosystem").
copy editor for hire
3) I tried this on a machine that initially had 128MB of RAM. When I got to the "stateless-snapshooter -n -p DemoSystem" step, I ran out of memory: "device-mapper ioctl cmd 9 failed: Cannot allocate memory". I added 128MB of RAM and still had the same problem, so I stopped some non-essential services (httpd, sendmail, etc.). Then I was able to continue.
I'll have to settle for testing it with 1GB dual channel pc3200, we'll see if it makes a difference. We got that message when we were loading the 'vmlinuz' kernel instead of the pxelinux.0 boot image first.
4) Because I needed to reboot to add RAM, all of the files that I had copied from the 'test' system to /srv/stateless/protosystem/DemoSystem seemed to have been lost. It wasn't until after I had re-copied them from the test machine that I remembered the "mount /dev/mapper/VGStateless-DemoSystem /srv/stateless/protosystems/DemoSystem" command in one of the previous steps. Moral of the story: add it to the /etc/fstab so it'll be automatically remounted on reboots.
entered into fstab, though mine kept that mount when I rebooted.
5) In the /etc/dhcpd.conf file, it refers to "linux-install/pxelinux.0" as the PXE bootable image, but when the PXE client connects this file is not found. I copied /usr/lib/syslinux/pxelinux.0 (from syslinux RPM) to /tftpboot/linux-install.
I changed this. Whatever is referred to as the pxelinux location is actually tacked onto /tftpboot/. I'm concerned that parts of the program may attempt to run and be looking inside /tftpboot/ for the images, or be looking for non-pxe files realitve to that path. Anyway I changed it to /pxelinux.0 and dropped the files in /tftpboot to make my life easier.
6) Because of the RAM problem above, I'm not sure that subsequent invocations of "stateless-snapshooter -n -p DemoSystem" actually worked as designed. When I execute "stateless-snapshooter -l", I get:
Protosystems:
DemoSystem
But it doesn't say anything about snapshots. This makes me nervous. What should the output look like?
That's what mine looks like.
7) When I run "python statelessGenPXEConfig.py" after adding the MAC addresses, I get "Unable to get NFS location of DemoSystem snapshot DemoSystem-1". I'm not exactly sure where it's supposed to have picked up the NFS path definition from. It appears to me from browsing some of the code that somewhere along the line I was supposed to have executed "stateless-servers", but I didn't see anything about that in the documentation.
In the config.py you can control all the paths the python scripts look to. This need to be changed, I think, to run off the etc/sysconfig/stateless file, because users aren't going to manipulate python scripts (no matter how simple it may be).
Since the statelssGenPXEConfig.py script failed to generate any PXE configuration, I generated my own by hand:
DEFAULT stateless/DemoSystem/DemoSystem-1/vmlinuz initrd=stateless/DemoSystem/DemoSystem-1/initrd.img NFSROOT=6.6.6.1:/srv/stateless/snapshots/DemoSystem/DemoSystem-1
ah very helpful.
I then added the following to /etc/exports:
/srv/stateless/snapshots/DemoSystem/DemoSystem-1 *(ro,async)
I have the same, but added no_root_squash. I think I also put the subnet in there because I don't need to export the file to the whole internet.
With these changes, I was able to get a machine to boot from the snapshot, but there were many errors/warnings stemming from having a read-only root (and /var) filesystem on a diskless client.
Going to try it now. I had the initial install authorize of a pre-existing, usable ldap auth server, so maybe I'll get past this.
Jason