Kevin Veen-Birkenbach 4fa1c6cfbd
ansible: quote file modes; keycloak: robust LDAP bind update + config cleanup
Highlights
- Quote all file modes as strings ("0755"/"0770") across multiple roles to avoid YAML octal quirks and improve portability.
- Keycloak: introduce actions.{import_realm,update_ldap_bind} feature flags and wire them via vars/config.
- Implement idempotent LDAP bind updater (tasks/03_update-ldap-bind.yml):
  * kcadm login with no_log protection,
  * fetch LDAP UserStorage component by name,
  * compare current bindDn/bindCredential and update only when changed.
- Keycloak realm import template: keep providerId="ldap" and set name from keycloak_ldap_component_name.
- Centralize Keycloak readiness check in tasks/main.yml; remove duplicate waits from 02_update_client_redirects.yml and 04_ssh_public_key.yml.
- 01_import.yml: fix typo (keycloak), quote modes, tidy spacing, and replace Jinja-in-Jinja fileglob with concatenation.
- 02_update_client_redirects.yml: correct assert fail_msg filename; keep login-first flow.
- Minor template/vars tidy-ups (spacing, comments, consistent variable usage).

Files touched (excerpt)
- roles/*/*: replace 0755/0770 → "0755"/"0770"
- roles/web-app-keycloak/config/main.yml: add actions map
- roles/web-app-keycloak/vars/main.yml: unify Keycloak vars and feature flags
- roles/web-app-keycloak/tasks/{01_import,02_update_client_redirects,03_update-ldap-bind,04_ssh_public_key,main}.yml
- roles/web-app-keycloak/templates/{docker-compose.yml.j2,import/realm.json.j2}

https://chatgpt.com/share/689bda16-b138-800f-8258-e13f6d7d8239
2025-08-13 02:20:38 +02:00
..
2025-07-22 08:33:58 +02:00
2025-08-13 00:33:47 +02:00
2025-07-15 14:58:15 +02:00
2025-07-22 08:33:58 +02:00
2025-07-22 08:33:58 +02:00

Storage Optimizer

Description

This role optimizes storage allocation for Docker volumes by migrating volumes between SSD (rapid storage) and HDD (mass storage) based on container image types. It creates symbolic links to maintain consistent storage paths after migration.

Overview

The role performs the following tasks:

  • Migrates Docker volumes with database workloads to rapid storage (SSD) for improved performance.
  • Moves non-database Docker volumes to mass storage (HDD) to optimize storage usage.
  • Manages container stopping and restarting during the migration process.
  • Creates symbolic links to preserve consistent file paths.

Purpose

The primary purpose of this role is to enhance system performance by ensuring that Docker volumes are stored on the most appropriate storage medium, optimizing both speed and capacity.

Features

  • Dynamic Volume Migration: Moves Docker volumes based on container image types.
  • Symbolic Link Creation: Maintains consistent access paths after migration.
  • Container Management: Safely stops and starts containers during volume migration.
  • Performance Optimization: Improves overall system performance by leveraging appropriate storage media.

Credits 📝

For detailed context and the development history of this role, refer to this conversation.