Angrist README

Angrist is a simple cluster node configurator. It provides files to be copied directly to the root of the node, and sets up various tasks via crontab.

Basic ideas

  • Rootfs is transferred over with mercurial. You can serve it by any means you want. (ssh/hg serve/web)
  • Files are added with rsync. Any file deletions must be handled separately, in the angrist_update script
  • Cron jobs take care of package installations, and self update
  • Angrist just creates the infra: add your own scripts in the /usr/local/sbin and cron them if necessary.

Resources to edit:

  • /var/lib/angrist/labinfra

    • Names of users to be added as sudo
  • /etc/angrist.conf

    • contains the configuration variables. Set yours here!
  • /var/lib/angrist/init/install

    • Edit this to have the initial installation commands. The script is not launched automatically.

One time installations


  • the main initial install script, that sets up mount points and various basic settings the nodes. Running is NOT automatic!

Continuously run scripts

/usr/local/sbin/angrist... files contain:

  • functions: functions for other scripts
  • logger: tool to store cron jobs output to /var/log/angrist
  • update: update self. Also, remove deleted files, and set up correct ownerships
  • user_management: set up homefolder, add users to groups etc
  • installs: installs all the packages needed in the system. Stores the names of the packages. Edit the file as needed.
  • installs_user: Takes user defined scripts and installs packages in them. See the variable PKGBASE in configuration. Example scripts in /var/lib/angrist/shared
  • apt-get: updated apt-get repository
  • r_update: updates R packages

Add frequently used commands, that also can be run manually to /usr/local/sbin/angrist