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