..
2025-01-20 19:50:17 +01:00
2025-01-20 23:53:07 +01:00
2025-01-20 18:26:51 +01:00
2025-01-21 00:19:59 +01:00

docker-keycloak

Description 🌟

This role automates the setup and configuration of Keycloak in a Docker environment. Keycloak is an open-source identity and access management solution. The role integrates Keycloak with PostgreSQL as a database and supports operation behind a reverse proxy like NGINX.

Features

  • Set up Keycloak as a Docker container.
  • Use PostgreSQL as the database.
  • Customizable configuration of Keycloak environment variables.
  • Support for running behind a reverse proxy (e.g., NGINX).
  • Automatic creation and management of Docker Compose files.

Requirements 📋

  • Docker and Docker Compose must be installed on the target system.
  • A working NGINX proxy for forwarding requests to Keycloak (optional).

Variables ⚙️

Main Variables

Defined in vars/main.yml:

Variable Description
docker_compose_project_name Name of the Docker Compose project. Default: keycloak.
database_type Type of the database. Default: postgres.
database_password Password for the PostgreSQL database user.

Additional Variables (Templates)

Variable Description
keycloak_version Version of the Keycloak image.
domain Domain where Keycloak will be accessible.
keycloak_administrator_username Admin username for Keycloak.
keycloak_administrator_password Admin password for Keycloak.
database_host Host of the PostgreSQL database.
database_name Name of the PostgreSQL database.
database_username Username for the PostgreSQL database.
http_port Port where Keycloak will be accessible (default: 8080).
docker_restart_policy Docker restart policy (e.g., always, unless-stopped).

Tasks 🛠️

The role performs the following main tasks:

  1. Include database and proxy configuration files:

    • Integration of a PostgreSQL database.
    • Setup of a reverse proxy for the domain.
  2. Generate docker-compose.yml:

    • Automatically generate the Docker Compose file based on templates and variables.
  3. Start Docker containers:

    • The role launches the Keycloak project using Docker Compose.

Example: Usage 🚀

Here is an example of how to use this role in a playbook:

- name: Setup Keycloak with Docker
  hosts: all
  vars:
    domain: "auth.example.com"
    keycloak_version: "21.1.0"
    keycloak_administrator_username: "admin"
    keycloak_administrator_password: "securepassword"
    database_host: "db.example.com"
    database_name: "keycloak_db"
    database_username: "keycloak_user"
    database_password: "securedbpassword"
    http_port: 8080
    docker_restart_policy: "unless-stopped"
  roles:
    - docker-keycloak

More Information 📚

For more details about Keycloak, check out:


Author ✍️

Kevin Veen-Birkenbach
veen.world