WHAT has several advantages over cfengine -- the configuration management tool that most people use. The first is that it can fetch files from a web server instead of requiring a shared filesystem or a special cfengine server. The second is that WHAT is designed for machine generating config files, unlike cfengine which is geared towards hand editing. This comes in very handy when managing a diverse set of machines.
cd SOMEWHERE/nightly-tests.what cvs update
Otherwise, get a fresh checkout:
cd SOMEWHERE cvs -d /p/vdt/workspace/vdt_cvs co nightly-tests.what
ssh root@NEW-MACHINE
scp 'USER@AFS-HOST:SOMEWHERE/nightly-tests.what/what/install_what' .
./install_what
If you need to stop running nightly tests on a machine for a while to allow you or someone else to run tests without interference, follow these steps.
To stop the machine from running what and the nightly tests:
sudo /bin/rm -f /etc/cron.d/vdt-*vdt-dev and let everyone know the machine is reservedTo return the machine to its normal state:
sudo /opt/what/bin/what apply /opt/what/etc/bootstrap.xmlvdt-dev and let everyone know the machine is back to normalNote: It will take a few minutes for the vdt-what cron job to run after step 1, so be
patient.
vail(nmueller): ls /p/vdt/public/html/what root/ # Becomes / on the test boxes bootstrap.xml # Bootstrap config. Installs new versions of WHAT and itself. real.xml # The "real" configuration. This is just a mason wrapper around gen_what_config. gen_what_config* # A script to create the configuration for a given host. software/ # Source tarballs for software that we require. grid-security/ # Grid security tarballs what.tar.gz # WHAT itself cslmods.tar.gz # Some non-standard perl modules that it requires
Without getting too in depth, what runs periodically on the test boxes and
processes bootstrap.xml. If bootstrap.xml, real.xml
or what.tar.gz changes (real.xml contains md5sums for all the files in root, so it changes every time
they change) it will pull down the new copy, install it and run what on real.xml.
real.xml does all the rest of the work. It pulls down our stuff (/vdt-install-test, /home/vdttest, grid-security.tar.gz), performs some misc configuration (sudoers, ntp, selinux), manages users, installs software we need (postgresql, sudo) and perl modules that we need (lots).
As for editing gen_what_config, it shouldn't be too hard. At the top of the file are variables that control some of the most frequently changed behavior -- users, crontab entries and the pacman version. For anything more in depth just take a look at the code.