General description of installation of hosts with cfengine

From techdocs
Jump to navigation Jump to search

The installation of New World hosts follows a number of principles:

  1. All hosts run Debian
  2. cfengine is used to take a host from a minimally-installed Debian condition to CSE-usefulness[1]
  3. 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
  4. The basic sequence of operations of any cfengine (read: cf-agent) run is as follows. This includes an initial install:
    1. Download an updated promises.cf file, if available
    2. Download an update host-specific "personalisation" configuration file defs.json, if available
    3. Create, instantiate or update configuration files
    4. Install or remove system-specific Debian packages
    5. Install or remove teaching-specific Debian packages
    6. Update teaching-specific extra files
    7. The promises.cf also controls the restarting or reloading of systemd services if/when configurations are changed

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:

  1. cfengine's configuration doesn't contain too much magic so as to make it inscrutable, and
  2. To ensure CSG staff retain administration skills.

Footnotes

  1. 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.
  2. When selected manually the minimal configuration should include only SSH server.