Consfigurator 1.1.0 released

Sean Whitton spwhitton at spwhitton.name
Thu Aug 4 23:34:57 BST 2022


I am pleased to announce Consfigurator 1.1.0.

    - API change: DISK:HOST-VOLUMES-CREATED has been removed in favour
      of new properties DISK:FIRST-DISK-INSTALLED-FOR and
      DISK:VOLUMES-INSTALLED-FOR.

    - API change: INSTALLED:CHROOT-INSTALLED-TO-VOLUMES-FOR has been
      renamed to INSTALLER:FILES-INSTALLED-TO-VOLUMES-FOR, and will now
      bootstrap a root filesystem directly to the volumes if not
      supplied a chroot.  The CHROOT parameter has become a keyword
      parameter, and the required parameters have changed from ``(HOST
      CHROOT VOLUMES)`` to ``(OPTIONS HOST VOLUMES)`` for consistency
      with other property lambda lists.

      The new property also includes a bugfix: we now rebuild the
      initramfs after populating the crypttab.

    - API change: DISK:WITH-OPENED-VOLUMES now includes volumes that
      were already open, and their parents, in the connattrs.

    - DISK:LUKS-CONTAINER: Add support for passing arbitrary options to
      cryptsetup(8) when creating volumes, such as ``--cipher``.

    - DISK:WITH-OPENED-VOLUMES, INSTALLER:FILES-INSTALLED-TO-VOLUMES-FOR
      and DISK:VOLUMES-INSTALLED-FOR support a new ``LEAVE-OPEN``
      argument to request that opened volumes are not closed.  This is
      useful for inspecting the result of an installation, but must be
      used with caution: the next deployment will assume the volumes
      have been manually closed.

You can find the source at https://git.spwhitton.name/consfigurator for
browsing online or git cloning.

Releases are made by publishing signed git tags to that repository.  The
tag for this release is named 'v1.1.0', and is signed by me.

On Debian/etc. systems, apt-get install cl-consfigurator

-8<-

Consfigurator is a system for declarative configuration management using
Common Lisp.  You can use it to configure hosts as root, deploy services
as unprivileged users, build and deploy containers, install operating
systems, produce disc images, and more.  Some key advantages:

 * Apply configuration by transparently starting up another Lisp image
   on the machine to be configured, so that you can use the full power
   of Common Lisp to inspect and control the host.

 * Also define properties of hosts in a more restricted language, that
   of :POSIX properties, to configure machines, containers and user
   accounts where you can't install Lisp.  These properties can be
   applied using just an SSH or serial connection, but they can also be
   applied by remote Lisp images, enabling code reuse.

 * Flexibly chain and nest methods of connecting to hosts.  For example,
   you could have Consfigurator SSH to a host, sudo to root, start up
   Lisp, use the setns(2) system call to enter a Linux container, and
   then deploy a service.  Secrets, and other prerequisite data, are
   properly passed along.

 * Combine declarative semantics for defining hosts and services with a
   multiparadigmatic general-purpose programming language that won't get
   in your way.

Declarative configuration management systems like Consfigurator and
Propellor share a number of goals with projects like the GNU Guix System
and NixOS.  However, tools like Consfigurator and Propellor try to layer
the power of declarative and reproducible configuration semantics on top
of traditional, battle-tested UNIX system administration infrastructure
like distro package managers, package archives and daemon configuration
mechanisms, rather than seeking to replace any of those.  Let's get as
much as we can out of all that existing distro policy-compliant work!

-- 
Sean Whitton



More information about the sgo-software-announce mailing list