This page is aimed at admins; that is, people with root privileges on our servers. Most members should probably consult DomTool/UserGuide instead.
This page documents the different DomTool plugins, which provide the primitive actions that can be used to configure particular "real" daemons.
Modules: [http://deleuze.hcoop.net/domtool/apache.html Apache], [http://deleuze.hcoop.net/domtool/apache_auth.html Apache_auth], [http://deleuze.hcoop.net/domtool/apache_options.html Apache_options], [http://deleuze.hcoop.net/domtool/mod_autoindex.html Mod_autoindex], [http://deleuze.hcoop.net/domtool/mod_rewrite.html Mod_rewrite], [http://deleuze.hcoop.net/domtool/proxy.html Proxy], [http://deleuze.hcoop.net/domtool/urls.html Urls]
Each vhost "$HOST" directive creates a $HOST.vhost file in $DOMTOOL/nodes. A change handler for .vhost files copies them to /var/domtool/vhosts. A post-handler rsyncs /var/domtool/vhosts to /etc/apache2/vhosts after any vhost has changed. After that, it runs /etc/init.d/apache2 reload to reload configuration.
The Apache plugin also manages creation and deletion of log directories. Each member should have an apache/log subdirectory of his AFS volume root, owned by domtool with read permissions for the member. The plugin creates a directory /afs/hcoop/usr/$USER/apache/log/$NODE/$HOST for each virtual host running on $NODE as $USER with full hostname $HOST. When a vhost is deleted, the plugin deletes its log directory. Since this can't be done while Apache is running, because the daemon maintains open file handles to logs, the plugin has to take Apache down until configuration is finished, reloading it afterward. Hopefully domains aren't deleted very often, so this shouldn't be much of a problem.
Apache also provides hooks that other plugins can use to request callbacks just before and/or after a vhost is configured.
Modules: [http://deleuze.hcoop.net/domtool/bind.html Bind]
BIND configuration directives are written to dns files in the $DOMTOOL/nodes directories of the appropriate nodes/domains. These dns files contain all of the contents of a BIND zonefile, with the exception of the SOA record. This is handled by main DomTool code and written in a stylized form to soa files. The BIND plugin registers a change handler looking for modifications to either dns or soa files. When any are found, /var/domtool/zones/$DOMAIN.zone is regenerated from them. A post-handler rsyncs /var/domtool/zones to /etc/bind/zones and runs /etc/init.d/bind9 reload.