Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
_mig5
searching Neon…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
6 ms
·
1.
▲
by
_mig5
2mo ago
No ads. No tracking. Inspired by Bored Zebra's 100 Jumps (and shared with their blessing. Thanks!). Couple of screenshots: https://goto.mig5.net/@mig5/statuses/01KWRJMJDFSF1TA28XTN5FA... Have fun.
2.
▲
by
_mig5
8mo ago
Hi everyone! I'm pleased to report I'm releasing Enroll 0.4.0 today. It has some cool new features: --ignore-package-versions for 'enroll diff' ,so you don't get alerted to just standard software updates of existing
3.
▲
by
_mig5
9mo ago
I captured most of the above in the docs now: https://enroll.sh/docs.html#harvest I've also published a JSONSchema of the state.json file here to help people understand its structure: https://enroll.sh/
4.
▲
by
_mig5
9mo ago
Cool tool, didn't know it existed! :) Thanks for passing on the word. 'Capture app and system stuff and deploy anywhere' is totally the goal :)
5.
▲
by
_mig5
9mo ago
Thanks for all the love HN! I had a lot of good feedback directly from the comments here, and have made a new release that contains some bug fixes, as well as an improvement to support remote harvesting when the user requires a password for
6.
▲
by
_mig5
9mo ago
Dang! Seems strange.. I guess you are not using password-less sudo? (I'm interested to understand how Ansible itself works for you then too in such a setup, you have it prompting for a password when it invokes sudo?) Yeah, I haven'
7.
▲
by
_mig5
9mo ago
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 packages are installed 3) For each package, it tries to detect fi
8.
▲
by
_mig5
9mo ago
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 release and I'll set `get_pty=True` for the paramiko
9.
▲
by
_mig5
9mo ago
Thanks usrme! Good questions. I run QubesOS as my workstation, so it's been really beneficial here, because Qubes is all VMs and templates. I've been 'harvesting' one Qube VM and then building another and running the man
10.
▲
by
_mig5
9mo ago
Hi mlrtime. You could run it on a base system, and use --exclude-path and --include-path all you want, to capture or ignore the things you don't care about. Treat that as your 'golden' harvest state. You could then run a 
11.
▲
by
_mig5
9mo ago
Thank you, Jeff! What an honour! Let me say that nothing compares to your catalogue of Ansible roles that I have benefited from for many years, which are far better written than anything Enroll generates :) I intend for Enroll only to be a
12.
▲
by
_mig5
9mo ago
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 found a running systemd service, perhaps it was due to
13.
▲
Show HN: cspresso - CLI tool to scan a website & generate/evaluate a CSP header
(cspresso.cafe)
3 points
by
_mig5
9mo ago
|
0 comments
14.
▲
by
_mig5
9mo ago
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 up in a 'usr_loc
15.
▲
Show HN: Bouquin, an encrypted planner app written in PySide6 and SQLCipher
(git.mig5.net)
2 points
by
_mig5
9mo ago
|
0 comments
16.
▲
by
_mig5
9mo ago
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 https://git.mig5.net/mig5/enroll/src
17.
▲
by
_mig5
9mo ago
I agree! It's always a 'best effort' tool. There's going to be corner cases where something that might end up in the 'logrotate' role could arguably be better placed in a more specific app's role. It does
18.
▲
by
_mig5
9mo ago
Whoops, thanks, I'll adjust that example! Indeed when using single-shot, unless you're using the --remote modes (in which case, the harvest is pulled down to a machine-generated path locally), indeed you need to supply the path to
19.
▲
by
_mig5
9mo ago
Here's a video of JinjaTurtle, the companion tool that converts configs to Jinja2 templates and Ansible vars: https://asciinema.org/a/765293 Enroll will automatically make use of jinjaturtle if it's on the $P
20.
▲
by
_mig5
9mo ago
Definitely! It's all too easy to make a direct change and later forget to 'fold it in' to Ansible and run a playbook. My hope is that `enroll diff` serves as a good reminder if nothing else. I'm pondering adding some sor
21.
▲
by
_mig5
9mo ago
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 using a Debian-like or Fedora-like workstation, it's a
22.
▲
by
_mig5
9mo ago
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) https://github.com/devstructure/blueprint
23.
▲
by
_mig5
9mo ago
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 use this with ansible? Yes, exactly: let's say you provi
24.
▲
by
_mig5
9mo ago
Really nice work! Seems super clean and efficient. I don't want to do a 'look at my tool, it's better' comment (it's not better!) - but per your request for feedback, I just wanted to mention a (sort of) similar pro
25.
▲
by
_mig5
9mo ago
Great tool! I was looking to convert my decades-old shell script into something a bit more modern and user-friendly, and lo and behold, this appeared right at the same time :) I'll just use yours instead. Well done! :)
26.
▲
Show HN: Enroll, a tool to reverse-engineer servers into Ansible config mgmt
(enroll.sh)
265 points
by
_mig5
9mo ago
|
56 comments