Create an LVM logical volume on the server to store the protosystem:
lvcreate --size size-of-protosystem --name DemoSystem VGStateless mke2fs /dev/VGStateless/DemoSystem mkdir /srv/stateless/protosystems/DemoSystem mount /dev/VGStateless/DemoSystem /srv/stateless/protosystems/DemoSystem
Perform a standard installation on a test machine, selecting the packages you wish to be installed on the clients.
Use the rsync on the server to copy the files from the test machine to the prototype system area created above.
On the test machine:
service iptables stop
On the server:
rsync -e ssh -av --exclude '/proc/*' --exclude '/sys/*' IP-address-of-test-machine:/ /srv/stateless/protosystems/DemoSystem
Edit /etc/fstab within the prototype system
At this step, and in the subsequent ones, when we refer to editing a file within the prototype system, we mean in the hierarchy below /srv/stateless/protosystems/DemoSystem. So, for example, to edit /etc/fstab within the prototype system, we mean you should be editing /srv/stateless/protosystems/DemoSystem/etc/fstab. You can do this by manually expanding the paths, or by using chroot.
Make sure the devices for / and /boot are LABEL=/ and LABEL=/boot respectively, delete the swap partition line.
Configure NFS mounted home directories by adding the line:
server-address:/home/users /home/users nfs rw,nosuid,nodev,hard,intr,bg,rsize=8192,wsize=8192
Create the mountpoint within the protosystem:
Install the latest versions of the readonly-root and stateless-client packages into the prototype system.
You can do this by editing /etc/yum.conf within the prototype system and appending these lines:
[StatelessLinux] name=Stateless Linux baseurl=http://people.redhat.com/dmalcolm/stateless
and then running yum within the protosystem:
chroot /srv/stateless/protosystems/DemoSystem yum install readonly-root stateless-client
Configure nss-ldap by editing /etc/ldap.conf within the prototype system
Change host line to be host server-address
Change base line from base example.com to base dc=stateless-test, dc=fubar, dc=org
Edit /etc/nsswitch.conf within the prototype system; change passwd, shadow, and group lines to be files ldap
Create an entry representing the new protosystem within the LDAP directory
ldapadd -x -W -D"cn=Manager, dc=stateless-test, dc=fubar, dc=org" <<EOF dn: statelessConfigurationName=DemoSystem,dc=stateless,ou=services, dc=stateless-test, dc=fubar, dc=org objectClass: statelessConfiguration statelessConfigurationName: DemoSystem # Need the previous blank line to correctly terminate the above entry EOF
Ensure that the kernel module for the "snapshot" device-mapper target is loaded by running dmsetup targets. If snapshot is not listed, you will need to load the relevant kernel module:
Rerun dmsetup targets, and snapshot should now be listed.