Enroll

Dev tools

configuration management

SHOW HN2026

Legend

Enroll

A tool to reverse-engineer servers into Ansible config mgmt

enroll.sh

#ansible#configuration management#drift detection#server provisioning#sbom

265points
56comments
#176of 4,366 in 2026
Top 5%of 2026 by points

How HN took it

LovedMost comments that take a side are positive

16 positive, 14 neutral or asking, 2 mixed, 1 critical, out of 33 comments about the project. Thread score +0.42.

Idea: 11 for, 0 againstExecution: 0 for, 1 against

The thread, comment by comment

Each row is a top-level comment and its replies, in HN's order. Select a cell to open that comment on HN.

positive neutral or mixed critical about another commenter or something else the maker

What HN said

What people liked

  • Useful for learning Ansible and seeing server state as code.

    From 2 comments
    • This looks like a great way to learn Ansible too. Instead of learning alongside random examples, you can setup your server and see how it would look like in Ansible. Awesome stuff!
      bcye on HN
    • Woah, very neat! I may have to add this to the examples in Ansible for DevOps. Great idea, looks like for many cases it will help move hand config into automation.
      geerlingguy on HN
  • Captures forgotten manual changes on long-lived servers.

    From 2 comments
    • This is a fantastic idea. I can imagine using this to pull in any manual changes I might have made to the server because I’m not the most disciplined person.
      barbazoo on HN
    • Haha, same! I ran it on a server I've been shepherding along since 2008 and wow, it was insightful, there were even cron jobs it found that I had forgotten about :) If you are…
      _mig5 on HN

Objections

  • Generated Ansible code is harder to read than hand-written roles.

    From 1 comment
    • Thanks for the comment and questions! Very wise. Let me break it down as to what harvest does: 1) Detects the OS and its package backend (e.g dpkg vs rpm etc) 2) Detects what…
      _mig5 on HN
  • Can produce overwhelming output with many roles.

    From 2 comments
    • That's a really cute looking tool. I ran it without installing via: ``` uv tool run enroll single-shot --harvest ./harvest --out ./ansible ``` It generated almost a thousand…
      stevekemp on HN
    • Yup - it can be pretty overwhelming, it depends on what it detected on your system! The state.json will usually explain why it 'harvested' something (perhaps it was because it…
      _mig5 on HN

Requests

  • Support for sudo password prompts over SSH.

    From 2 comments
    • I've been looking for something like this, awesome! Is it expected that it does not allocate a TTY for sudo password prompts when connecting to a remote machine via SSH? How…
      slhck on HN
    • Ah, this is not a problem for me on my remote hosts. I'm guessing this comes down to a sudoers policy on certain distros (redhat-like ones perhaps). I'm about to make a new…
      _mig5 on HN
  • Detect SELinux labels and file ACLs.

    From 2 comments
    • Could it also detect changed package files; if there are per-package-file checksums like with `debsums` and `rpm -V`? Does it check extended filesystem labels with e.g. getfacl…
      westurner on HN
    • Hi westurner! > Could it also detect changed package files; if there are per-package-file checksums like with debsums and `rpm -V`? Yes, that's exactly what it does. See…
      _mig5 on HN

Questions

  • How does it determine what counts as state beyond packages and services?

    From 2 comments
    • A question I didn't see answered on the Web site or in the comments... How does it determine what is "state"? Packages are easy, you just get a list of those with the package…
      bityard on HN
    • Thanks for the comment and questions! Very wise. Let me break it down as to what harvest does: 1) Detects the OS and its package backend (e.g dpkg vs rpm etc) 2) Detects what…
      _mig5 on HN
  • Does it handle one-off custom applications?

    From 2 comments
    • Does the playbook generation have support for some totally custom/one-off application? (Eg, not just system/well-known stuff). If so, that would be insane!
      indigodaddy on HN
    • It does! There are several sort of 'catch-alls' in place: 1) stuff in /etc that doesn't belong to any obvious package, ends up in an 'etc_custom' role 2) stuff in /usr/local ends…
      _mig5 on HN

Alternatives named

  • Machinery (SUSE)

    From 1 comment
    • This makes me think of the now defunct https://github.com/SUSE/machinery
      nightshift1 on HN
  • blueprint (DevStructure)

    From 1 comment
    • Indeed! I'm showing my age, but I do remember using this with Puppet and it was one of my inspirations :D (no commits in nearly 13 years, ouch)…
      _mig5 on HN
  • Nix / NixOS

    From 2 comments
    • I wonder if Nix has similar tools, as it is famous for declarative system management, which is quite suitable for server provisioning.
      novoreorx on HN
    • poor man’s nixOS
      xyst on HN
  • cloud-init

    From 1 comment
    • Great questions! OP here, let me answer them below: > How accurate does this tool end up becoming though? Like can I just run some bunch of commands to setup a server and then…
      _mig5 on HN

Category, keywords, summaries and labels on this page were made by AI (Thread Reader v2) and not checked by hand. Each point links to the comments it came from.

Add a badge to your READMEShown on HackerShow
[![Shown on HackerShow](https://hackershow.org/badge.svg)](https://hackershow.org/show/46449852)