This directory contains Ansible automation scripts for setting up and managing a Keycloak testing environment. The automation handles everything from environment provisioning to Keycloak configuration and test setup.
ansible/
├── files/ # Static files used in provisioning
├── scripts/ # Helper scripts for automation
├── tasks/ # Ansible task definitions
│ ├── common/ # Common tasks shared across playbooks
│ ├── database/ # Database setup and configuration
│ ├── environment/ # Environment setup tasks
│ └── keycloak/ # Keycloak-specific tasks
├── templates/ # Jinja2 templates
├── utils/ # Utility scripts and helpers
└── vars/ # Variable definitions
The main playbook provision_keycloak.yml
orchestrates the entire environment setup:
- Pre-flight environment checks
- Secret generation
- Service environment configuration
- Docker container management
- Database setup
- Keycloak configuration
- Test environment generation
Located in containers/
:
Dockerfile
: Defines Keycloak container based onquay.io/keycloak/keycloak:23.0.7
compose.yml
: Docker Compose configuration for the entire stack
The tasks/
directory contains specialized task modules:
- Secret generation
- Shared utilities
- Common configurations
- Database initialization
- Schema setup
- User management
- Service environment generation
- Test environment setup
- Configuration management
- Realm configuration
- Client setup
- User provisioning
- Role and policy management
templates/
: Jinja2 templates for generating configurationsvars/
: Variable definitions for different environments
- Ansible
- Docker and Docker Compose
- Python 3.x
- Start the environment:
ansible-playbook provision_keycloak.yml -e "stack_state=present"
- Stop the environment:
ansible-playbook provision_keycloak.yml -e "stack_state=stopped"
- Remove the environment:
ansible-playbook provision_keycloak.yml -e "stack_state=absent"
Key variables that can be configured:
stack_state
: Controls environment state (present/stopped/absent)workspace
: Base directory for automationcontainers_dir
: Location of container definitions
Common issues and solutions:
-
Container Startup Issues:
- Check Docker logs
- Verify port availability
- Ensure sufficient resources
-
Database Connection Issues:
- Verify database credentials
- Check network connectivity
- Validate database initialization
-
Keycloak Configuration:
- Review realm settings
- Check client configurations
- Verify user permissions