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