General description of installation of hosts with cfengine
Jump to navigation
Jump to search
The installation of New World hosts follows a number of principles:
- All hosts run Debian
- cfengine is used to take a host from a minimally-installed Debian condition to CSE-usefulness[1]
- To get a host to the "minimally-installed Debian" condition we accomodate:
- AWS Debian-provided machine instances, or
- Virtual machines or physical hosts booted from a standard Debian install DVD:
- With the root disk partition so everything is in the one partition except for swap, and
- With networking configured via DHCP, or
- With networking configured statically, and
- With a minimal configuration selected manually[2], or
- With a minimal configuration loaded via the network (see preseed and Installing a lab computer), this being the common/batch/standard way to install many identically-configured hosts, such as lab computers, as it allows cfengine to be installed and started automatically
- The basic sequence of operations of any cfengine (read:
cf-agent
) run is as follows. This includes an initial install:- Download an updated
promises.cf
file, if available - Download an update host-specific "personalisation" configuration file
defs.json
, if available - Create, instantiate or update configuration files
- Install or remove system-specific Debian packages
- Install or remove teaching-specific Debian packages
- Update teaching-specific extra files
- The
promises.cf
also controls the restarting or reloading ofsystemd
services if/when configurations are changed
- Download an updated
Limiting expectations of cfengine
There is no expectation or desire that cfengine will always take servers the "last mile". Installing a few final packages and making a few configuration changes is generally expected to be done manually when a host is installed to give the host or server its final "personality" or features. This is so:
- cfengine's configuration doesn't contain too much magic so as to make it inscrutable, and
- To ensure CSG staff retain administration skills.
Footnotes
- ↑ Amongst other things, this "usefulness" refers to being able to access CSE's UDB, access home directories, have CSE-specific programs and tools installed, have a full list of CSE hosts and IP addresses in
/etc/hosts
, and have a full set of Debian packages used for teaching installed. - ↑ When selected manually the minimal configuration should include only SSH server.