Dotfiles/setup
Amir Alexander Abdelbaki 815c0e57a8 refactor(ansipa): split enforce-policies monolith into modular policies.d/ system
The 1550-line ansipa-enforce-policies.sh is replaced by a slim orchestrator
that sources policy files from policies.d/ — one file per policy type — via
a shared lib/ansipa-policy.sh that consolidates all IPA group discovery into
two queries (one host-show, one group-find) instead of five or more.

New files:
- ansible/lib/ansipa-policy.sh          shared constants, log/warn, _ansipa_discover(),
                                         _smb_parse_cred(), _ansipa_sync_policystore()
- ansible/policies.d/dev_daemon.sh
- ansible/policies.d/dev_timeshift-backup.sh
- ansible/policies.d/dev_security-scan.sh
- ansible/policies.d/dev_no-local-users.sh
- ansible/policies.d/dev_local-sudo.sh
- ansible/policies.d/dev_ssh.sh
- ansible/policies.d/dev_mon.sh         includes usr_mon_logins (same CMK dep)
- ansible/policies.d/usr_admin.sh
- ansible/policies.d/usr_block-binary.sh
- ansible/policies.d/usr_prt.sh
- ansible/policies.d/usr_scan-notify.sh
- ansible/policies.d/usr_smb.sh
- ansible/policies.d/usr_policystore.sh NEW: auto-mount ~/policystore for
                                         usr_smb_adm_policystore members

The policies.d/ folder on the FreeIPA container is exposed as an SMB share
(ansipa-policystore) so admins can live-edit policy files without Ansible.
The enforcer syncs from the share before each run; cached local files are
used as fallback when SMB is unreachable.

- ansipa-smb-setup.sh: adds ansipa-policystore share + smb-policystore system
  user + usr_smb_adm_policystore IPA group with auto-generated credential
- deploy-ansipa-policies.yml: deploys lib/ and policies.d/ to enrolled clients;
  adds optional seed_policystore task for bootstrap

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-01 19:27:35 +02:00
..
Setup-shell-4-containers setup: housekeeping — rename, deprecate, fix refs 2026-05-11 15:02:25 +02:00
archiso fix(archiso): use oflag=direct so USB write progress isn't misleading 2026-06-26 19:22:23 +02:00
deprecated privacy: remove hardcoded username and AWS signed URL 2026-05-12 14:17:48 +02:00
modules refactor(ansipa): split enforce-policies monolith into modular policies.d/ system 2026-07-01 19:27:35 +02:00
tools feat(tools): add proxmox-lxc-gen.sh — TUI wizard for LXC containers 2026-07-01 18:55:59 +02:00
arch-autoinstall.sh fix(ansipa): full end-to-end test + multiple bug fixes 2026-07-01 10:30:06 +02:00
archbaseos-guided-install.sh fix(installer): make sudo -v passwordless during in-chroot TUI install 2026-06-27 01:50:17 +02:00
audit-packages.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
generate-answerfile.sh feat(installer): allow user/LUKS passwords to be set via the answerfile 2026-06-27 01:43:17 +02:00
install-modules.sh feat(plymouth): add custom-logo variant, sync answerfile + docs 2026-06-26 10:57:32 +02:00
install.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
modules.conf feat(modules): enable timeshift, ffmpeg, imagemagick, sox, yt-dlp, inkscape by default 2026-06-26 19:32:13 +02:00
reset-arch.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
simple-install.sh chore: add inline comments across all modules and configs 2026-06-25 13:07:06 +02:00
tui-install.sh fix(installer): make the unattended module path non-interactive 2026-06-27 01:15:43 +02:00