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).
2) Even with the latest code, there is a typo on line 96 of stateless-snapshooter.py ("--protosytem" should be "--protosystem").
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.
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.
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.
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:
But it doesn't say anything about snapshots. This makes me nervous. What should the output look 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.
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=18.104.22.168:/srv/stateless/snapshots/DemoSystem/DemoSystem-1
I then added the following to /etc/exports:
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.
When I finally got the machine to boot, it wouldn’t let me login! I suspect some read-only root problem during the login process that prevented the login process from completing.