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 cvs update
Otherwise, get a fresh checkout:
cd SOMEWHERE cvs -d /p/vdt/workspace/vdt_cvs co nightly-tests
scp 'USER@AFS-HOST:SOMEWHERE/nightly-tests/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-devand let everyone know the machine is reserved
To return the machine to its normal state:
sudo /opt/what/bin/what apply /opt/what/etc/bootstrap.xml
vdt-devand let everyone know the machine is back to normal
Note: It will take a few minutes for the
vdt-what cron job to run after step 1, so be
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
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.