Amir Alexander Abdelbaki
0c88a09a0f
feat(installer): add structured logging to all modules and installers
...
Add modules/lib/logging.sh with log(), skip(), warn(), err() helpers.
Source it in all 84 scripts (core, DEs, optional apps) and replace bare
echo calls with structured log messages. Add log file capture to install.sh.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 01:44:31 +02:00
Amir Alexander Abdelbaki
7279a781b0
setup: add FreeIPA server module and generic client script
...
freeipa-server.sh: interactive installer that collects domain, realm,
IP, admin/DM passwords, DNS, KRA, NTP, and AWX/Ansible settings;
runs conflict pre-flight (checks for existing named/dirsrv/krb5kdc,
ports 389/636/88, and /etc/ipa/default.conf); configures firewalld/ufw;
runs ipa-server-install; and outputs a ready-to-distribute client
package to ~/freeipa-output/ containing:
- freeipa-enroll.sh (server defaults baked in)
- freeipa-client.sh (server defaults baked in)
- freeipa-client-answerfile.json (pre-filled, password intentionally blank)
- auto-enroll-ansible.sh (AWX defaults embedded, still overridable)
- README.txt
freeipa-client.sh: thin wrapper around freeipa-enroll.sh with three modes:
--answerfile FILE read JSON with jq, build args, exec freeipa-enroll.sh
--interactive prompt for every field, then exec freeipa-enroll.sh
[flags] passthrough directly to freeipa-enroll.sh
freeipa-client-answerfile.json: template with current server defaults
(freeipa.abdelbaki.eu); freeipa-server.sh sed-replaces these when
generating customized copies.
Supported server OS: RHEL/Rocky/AlmaLinux/Fedora (primary), Arch (warned).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18 11:12:31 +02:00