mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2025-08-29 15:06:26 +02:00
Huge role refactoring/cleanup. Other commits will propably follow. Because some bugs will exist. Still important for longrun and also for auto docs/help/slideshow generation
This commit is contained in:
43
roles/web-app-redis/README.md
Normal file
43
roles/web-app-redis/README.md
Normal file
@@ -0,0 +1,43 @@
|
||||
# Role: web-app-redis
|
||||
|
||||
## Description
|
||||
|
||||
This Ansible role provides a Jinja2 snippet to inject a Redis service definition into your Docker Compose setup. It renders a `service.yml.j2` template that defines a `redis` container with sensible defaults.
|
||||
|
||||
## Overview
|
||||
|
||||
The role’s `service.yml.j2` template includes:
|
||||
|
||||
- An Alpine-based Redis image (`redis:alpine`)
|
||||
- Container naming based on `application_id` (defaults to `redis`)
|
||||
- Restart policy
|
||||
|
||||
- Journald logging driver
|
||||
- A named volume (`redis:/data`) for persistence
|
||||
- A basic healthcheck using `redis-cli ping`
|
||||
- Attachment to the default network
|
||||
|
||||
Include this snippet in your top-level `docker-compose.yml.j2` where you want Redis to appear.
|
||||
|
||||
## Features
|
||||
|
||||
- **Configurable `application_id`**
|
||||
Sets container name (`{{ application_id }}-redis`).
|
||||
|
||||
- **Restart policy**
|
||||
Controlled by `docker_restart_policy`.
|
||||
|
||||
- **Journald logging**
|
||||
Ensures logs are captured by systemd’s journal.
|
||||
|
||||
- **Persistent storage**
|
||||
Declares and mounts `redis:/data`.
|
||||
|
||||
- **Built-in healthcheck**
|
||||
Uses `redis-cli ping` with configurable intervals and retries.
|
||||
|
||||
## Further Resources
|
||||
|
||||
- [Official Redis Docker image on Docker Hub](https://hub.docker.com/_/redis)
|
||||
- [Ansible Jinja2 documentation](https://docs.ansible.com/ansible/latest/user_guide/playbooks_templating.html)
|
||||
- [Docker Compose reference](https://docs.docker.com/compose/compose-file/)
|
17
roles/web-app-redis/templates/service.yml.j2
Normal file
17
roles/web-app-redis/templates/service.yml.j2
Normal file
@@ -0,0 +1,17 @@
|
||||
# This template needs to be included in docker-compose.yml, which depend on redis
|
||||
redis:
|
||||
image: redis:alpine
|
||||
container_name: {{application_id}}-redis
|
||||
restart: {{docker_restart_policy}}
|
||||
logging:
|
||||
driver: journald
|
||||
volumes:
|
||||
- redis:/data
|
||||
healthcheck:
|
||||
test: ["CMD", "redis-cli", "ping"]
|
||||
interval: 1s
|
||||
timeout: 3s
|
||||
retries: 30
|
||||
networks:
|
||||
- default
|
||||
{{ "\n" }}
|
1
roles/web-app-redis/vars/main.yml
Normal file
1
roles/web-app-redis/vars/main.yml
Normal file
@@ -0,0 +1 @@
|
||||
application_id: redis
|
Reference in New Issue
Block a user