diff --git a/src/content/news/0-7-0.html b/src/content/news/0-7-0.html index 996c410..e21d211 100644 --- a/src/content/news/0-7-0.html +++ b/src/content/news/0-7-0.html @@ -18,16 +18,17 @@ summary: "Enroll can now render Puppet and Salt manifests alongside Ansible, det
-

Welcome to the first of Enroll's new, erm, news section! To celebrate, Enroll 0.7.0 has been released, and makes manifest rendering target-selectable. Ansible remains the default, but Puppet and Salt are now possible too (with a few small exceptions, read on).

+

Welcome to the first of Enroll's new, erm, news section! To celebrate, Enroll 0.7.0 has been released, and makes manifest rendering target-selectable based on your preferred config management tool! Ansible remains the default, but Puppet and Salt are now possible too (with a few small exceptions, read on).

Highlights

  • --target puppet renders Puppet module/control-repo style output., and in --fqdn mode, renders per-host Hiera data.
  • -
  • --target salt renders Salt state trees and, in --fqdn mode, Salt pillar data.
  • +
  • --target salt renders Salt state trees and, in --fqdn mode, Salt pillar data. Since it's Python, it also will make use of JinjaTurtle (if it finds it on your $PATH) to render templates, just like Ansible!
  • Ansible works basically as it always did, and is the default, but you can specify --target ansible too. As usual, in --fqdn mode, specific artifacts end up in host_vars inventory folders rather than polluting the 'golden' roles.
  • All three config management manifest renderers derive from the same harvest state. You can rendered repeatedly into different config management tools without re-harvesting the host!
  • Single-site output tries to combine package/service data by their package manager's Section (or equivalent metadata), to reduce role/module/state sprawl.
  • Flatpak and Snap detection!
  • +
  • Docker image detection!

Dry-run examples

@@ -58,6 +59,8 @@ summary: "Enroll can now render Puppet and Salt manifests alongside Ansible, det

Flatpak and Snap detection

Beyond deb and rpm

When using Ansible, Enroll now attempts to detect Flatpak and Snaps present on the system. For Flatpaks, this includes user-specific Flatpaks as well as system-wide ones. Manifesting to Ansible will attempt to use the community.general collection to create Flatpak and Snap tasks to enforce the presence of those packages.

+

For now, unfortunately Flatpak/Snap manifesting will not occur for Puppet or Snap, just Ansible. Either way, the 'detection' still occurs at the harvest level, so you can still take advantage of that with other subcommands like enroll diff.

+
$ sudo ansible-playbook playbook.yml -i localhost, -c local --tags role_snap --diff
 
@@ -77,6 +80,10 @@ ok: [localhost] => (item={'channel': 'latest/stable', 'classic': False, 'dangero
             
+

Docker image detection

+

Continuing to sniff out bits from your system...

+

The harvest now detects the presence of Docker images, if it has permission. In particular, it detects the SHA256 of the Docker image. All three renderers (Ansible, Salt and Puppet) will attempt to enforce the presence of those Docker images. For Puppet, you may need the puppetlabs-docker module installed. There are details in the manifested README.md of the Puppet code. For Ansible, you may need the community.docker collection, but on Debian 13 I found that it was already present by default in the official ansible Debian packages.

+

Please be aware that the Puppet and Salt renderers do not support the Flatpak/Snap package enforcement - only Ansible for now. You'll also need version 13+ of the community.general collection for this to work properly. A requirements.yml gets created with your manifest to help you install it if necessary.

Other smaller changes

@@ -88,7 +95,7 @@ ok: [localhost] => (item={'channel': 'latest/stable', 'classic': False, 'dangero

See you soon..

-

I'm off to try and write more tests - we're at 84% coverage in pytest, and we also run a stack of 'noop' executions for Ansible, Puppet and Salt too now, in CI.

+

I'm off to try and write more tests - we're at 83% coverage in pytest, and we also run a stack of 'noop' executions for Ansible, Puppet and Salt too now, in CI.

Thanks to everyone who has reached out with suggestions, constructive criticism, and bug reports! You're helping make Enroll better for everyone.