ARPMATS Project
Arpmats System Architecture
General Overview
The Arpmats system consists of the following major components:
- A Server: keeps track of which packages belong to which
machines and the like.
- A Client: updates the node as specified by the server
- A Management interface: This php & web-based interface allows you
to add new packages to classes, and the like.
Component details
- arpmats-common: A perl library which is required by both
the server and the client
- arpmats-server: The server-site requirements, including:
- A database which matches packages to cfengine classes
- setarp: A database creation script (with associated files)
- arpdate_db: A script to update the database from the Repository client
- arpmats.hourly: A repository-update script which:
- Runs arpdate_db
- Runs hourly in cron
- arpmats-client: Contains two scripts:
- rh_ifsetup: Sets up sub-interfaces under Redhat
(actually, anything that supports
/etc/sysconfig/network-scripts/ifcfg-eth0-range0)
- arpdate_node: A node-update script, currently written in perl, which needs to be translated into cfengine (I think). It:
- Investigates which packages are currently on the system
- Compares this with the list of packages in the database which
should be on the system
- Fetches the appropriate packages from the Repository Client driver
- Installs the appropriate packages
- Removes inappropriate packages (but no more
than 10, just to be safe; safety
improvements welcome)
- Runs hourly (at least)
- Various Package Manager drivers
- Interfaces with the package manager; currently only supports RPM (needs dpkg support)
- Various Repository Client drivers
- Interfaces with the Repository Client; currently
only supports up2date (which works on Fedora by
using yum)
- arpmats-testing: contains testing functions for all the
other packages
Arpmats Project