Consfigurator 1.0.3 released

Sean Whitton spwhitton at spwhitton.name
Thu Jun 30 06:46:40 BST 2022


I am pleased to announce Consfigurator 1.0.3.

    - Wrap calls to OSICAT:USER-INFO with a fallback to use getent(1).
      This fixes cases where getpwnam(3) and getpwuid(3) can fail to
      load required NSS modules because we have chrooted or similar.
    
    - Consfigurator now converts some of its internal shell script
      snippets to single lines before executing them, which improves
      debug output and the readability of process names visible to
      remote commands like ps(1).
    
    - Add PROG-CHANGES, USER:GROUP-EXISTS and
      INSTALLER:WITH-CLEANLY-INSTALLED-ONCE.
    
    - ESEQPROPS-UNTIL can now be used with any condition class, not just
      those subtyping FAILED-CHANGE.
    
    - REBOOT:AT-END now falls back to shell ``sleep``-based scheduling
      when shutdown(8) cannot schedule a reboot for the future.
    
    - Fix a few bugs in FILE:CONTAINS-INI-SETTINGS.
    
    - Fix FSTAB:HAS-ENTRIES-FOR-OPENED-VOLUMES for FAT32 filesystems.

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.0.3', 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