Compare commits
1 commit
22d2999f64
...
4a1b98c67c
| Author | SHA1 | Date | |
|---|---|---|---|
| 4a1b98c67c |
7 changed files with 165 additions and 174 deletions
|
|
@ -1,5 +1,4 @@
|
||||||
docker_compose__compose_file_content: "{{ lookup('ansible.builtin.file', 'resources/chaosknoten/zammad/docker_compose/compose.yaml') }}"
|
docker_compose__compose_file_content: "{{ lookup('ansible.builtin.template', 'resources/chaosknoten/zammad/docker_compose/compose.yaml.j2') }}"
|
||||||
docker_compose__env_file_content: "{{ lookup('ansible.builtin.template', 'resources/chaosknoten/zammad/docker_compose/.env.j2') }}"
|
|
||||||
docker_compose__configuration_files: [ ]
|
docker_compose__configuration_files: [ ]
|
||||||
|
|
||||||
certbot__version_spec: ""
|
certbot__version_spec: ""
|
||||||
|
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
POSTGRES_PASS={{ secret__zammad_db_password }}
|
|
||||||
POSTGRES_VERSION=15-alpine
|
|
||||||
REDIS_VERSION=7-alpine
|
|
||||||
NGINX_SERVER_SCHEME=https
|
|
||||||
|
|
@ -1,149 +0,0 @@
|
||||||
---
|
|
||||||
version: "3.8"
|
|
||||||
|
|
||||||
# Taken from: https://github.com/zammad/zammad-docker-compose/blob/master/docker-compose.yml
|
|
||||||
# Version: v14.1.1
|
|
||||||
# Update from new tag by replacing all content.
|
|
||||||
# Configuration should be done in the .env.j2.
|
|
||||||
|
|
||||||
x-shared:
|
|
||||||
zammad-service: &zammad-service
|
|
||||||
environment: &zammad-environment
|
|
||||||
MEMCACHE_SERVERS: ${MEMCACHE_SERVERS:-zammad-memcached:11211}
|
|
||||||
POSTGRESQL_DB: ${POSTGRES_DB:-zammad_production}
|
|
||||||
POSTGRESQL_HOST: ${POSTGRES_HOST:-zammad-postgresql}
|
|
||||||
POSTGRESQL_USER: ${POSTGRES_USER:-zammad}
|
|
||||||
POSTGRESQL_PASS: ${POSTGRES_PASS:-zammad}
|
|
||||||
POSTGRESQL_PORT: ${POSTGRES_PORT:-5432}
|
|
||||||
POSTGRESQL_OPTIONS: ${POSTGRESQL_OPTIONS:-?pool=50}
|
|
||||||
POSTGRESQL_DB_CREATE:
|
|
||||||
REDIS_URL: ${REDIS_URL:-redis://zammad-redis:6379}
|
|
||||||
S3_URL:
|
|
||||||
# Backup settings
|
|
||||||
BACKUP_DIR: "${BACKUP_DIR:-/var/tmp/zammad}"
|
|
||||||
BACKUP_TIME: "${BACKUP_TIME:-03:00}"
|
|
||||||
HOLD_DAYS: "${HOLD_DAYS:-10}"
|
|
||||||
TZ: "${TZ:-Europe/Berlin}"
|
|
||||||
# Allow passing in these variables via .env:
|
|
||||||
AUTOWIZARD_JSON:
|
|
||||||
AUTOWIZARD_RELATIVE_PATH:
|
|
||||||
ELASTICSEARCH_ENABLED:
|
|
||||||
ELASTICSEARCH_SCHEMA:
|
|
||||||
ELASTICSEARCH_HOST:
|
|
||||||
ELASTICSEARCH_PORT:
|
|
||||||
ELASTICSEARCH_USER:
|
|
||||||
ELASTICSEARCH_PASS:
|
|
||||||
ELASTICSEARCH_NAMESPACE:
|
|
||||||
ELASTICSEARCH_REINDEX:
|
|
||||||
NGINX_PORT:
|
|
||||||
NGINX_CLIENT_MAX_BODY_SIZE:
|
|
||||||
NGINX_SERVER_NAME:
|
|
||||||
NGINX_SERVER_SCHEME:
|
|
||||||
RAILS_TRUSTED_PROXIES:
|
|
||||||
ZAMMAD_HTTP_TYPE:
|
|
||||||
ZAMMAD_FQDN:
|
|
||||||
ZAMMAD_WEB_CONCURRENCY:
|
|
||||||
ZAMMAD_PROCESS_SESSIONS_JOBS_WORKERS:
|
|
||||||
ZAMMAD_PROCESS_SCHEDULED_JOBS_WORKERS:
|
|
||||||
ZAMMAD_PROCESS_DELAYED_JOBS_WORKERS:
|
|
||||||
# ZAMMAD_SESSION_JOBS_CONCURRENT is deprecated, please use ZAMMAD_PROCESS_SESSIONS_JOBS_WORKERS instead.
|
|
||||||
ZAMMAD_SESSION_JOBS_CONCURRENT:
|
|
||||||
# Variables used by ngingx-proxy container for reverse proxy creations
|
|
||||||
# for docs refer to https://github.com/nginx-proxy/nginx-proxy
|
|
||||||
VIRTUAL_HOST:
|
|
||||||
VIRTUAL_PORT:
|
|
||||||
# Variables used by acme-companion for retrieval of LetsEncrypt certificate
|
|
||||||
# for docs refer to https://github.com/nginx-proxy/acme-companion
|
|
||||||
LETSENCRYPT_HOST:
|
|
||||||
LETSENCRYPT_EMAIL:
|
|
||||||
|
|
||||||
image: ${IMAGE_REPO:-ghcr.io/zammad/zammad}:${VERSION:-6.5.2}
|
|
||||||
restart: ${RESTART:-always}
|
|
||||||
volumes:
|
|
||||||
- zammad-storage:/opt/zammad/storage
|
|
||||||
depends_on:
|
|
||||||
- zammad-memcached
|
|
||||||
- zammad-postgresql
|
|
||||||
- zammad-redis
|
|
||||||
|
|
||||||
services:
|
|
||||||
zammad-backup:
|
|
||||||
<<: *zammad-service
|
|
||||||
command: ["zammad-backup"]
|
|
||||||
volumes:
|
|
||||||
- zammad-backup:/var/tmp/zammad
|
|
||||||
- zammad-storage:/opt/zammad/storage:ro
|
|
||||||
user: 0:0
|
|
||||||
|
|
||||||
zammad-elasticsearch:
|
|
||||||
image: elasticsearch:${ELASTICSEARCH_VERSION:-8.19.4}
|
|
||||||
restart: ${RESTART:-always}
|
|
||||||
volumes:
|
|
||||||
- elasticsearch-data:/usr/share/elasticsearch/data
|
|
||||||
environment:
|
|
||||||
discovery.type: single-node
|
|
||||||
xpack.security.enabled: 'false'
|
|
||||||
ES_JAVA_OPTS: ${ELASTICSEARCH_JAVA_OPTS:--Xms1g -Xmx1g}
|
|
||||||
|
|
||||||
zammad-init:
|
|
||||||
<<: *zammad-service
|
|
||||||
command: ["zammad-init"]
|
|
||||||
depends_on:
|
|
||||||
- zammad-postgresql
|
|
||||||
restart: on-failure
|
|
||||||
user: 0:0
|
|
||||||
|
|
||||||
zammad-memcached:
|
|
||||||
command: memcached -m 256M
|
|
||||||
image: memcached:${MEMCACHE_VERSION:-1.6.39-alpine}
|
|
||||||
restart: ${RESTART:-always}
|
|
||||||
|
|
||||||
zammad-nginx:
|
|
||||||
<<: *zammad-service
|
|
||||||
command: ["zammad-nginx"]
|
|
||||||
expose:
|
|
||||||
- "${NGINX_PORT:-8080}"
|
|
||||||
ports:
|
|
||||||
- "${NGINX_EXPOSE_PORT:-8080}:${NGINX_PORT:-8080}"
|
|
||||||
depends_on:
|
|
||||||
- zammad-railsserver
|
|
||||||
|
|
||||||
zammad-postgresql:
|
|
||||||
environment:
|
|
||||||
POSTGRES_DB: ${POSTGRES_DB:-zammad_production}
|
|
||||||
POSTGRES_USER: ${POSTGRES_USER:-zammad}
|
|
||||||
POSTGRES_PASSWORD: ${POSTGRES_PASS:-zammad}
|
|
||||||
image: postgres:${POSTGRES_VERSION:-17.6-alpine}
|
|
||||||
restart: ${RESTART:-always}
|
|
||||||
volumes:
|
|
||||||
- postgresql-data:/var/lib/postgresql/data
|
|
||||||
|
|
||||||
zammad-railsserver:
|
|
||||||
<<: *zammad-service
|
|
||||||
command: ["zammad-railsserver"]
|
|
||||||
|
|
||||||
zammad-redis:
|
|
||||||
image: redis:${REDIS_VERSION:-7.4.5-alpine}
|
|
||||||
restart: ${RESTART:-always}
|
|
||||||
volumes:
|
|
||||||
- redis-data:/data
|
|
||||||
|
|
||||||
zammad-scheduler:
|
|
||||||
<<: *zammad-service
|
|
||||||
command: ["zammad-scheduler"]
|
|
||||||
|
|
||||||
zammad-websocket:
|
|
||||||
<<: *zammad-service
|
|
||||||
command: ["zammad-websocket"]
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
elasticsearch-data:
|
|
||||||
driver: local
|
|
||||||
postgresql-data:
|
|
||||||
driver: local
|
|
||||||
redis-data:
|
|
||||||
driver: local
|
|
||||||
zammad-backup:
|
|
||||||
driver: local
|
|
||||||
zammad-storage:
|
|
||||||
driver: local
|
|
||||||
162
resources/chaosknoten/zammad/docker_compose/compose.yaml.j2
Normal file
162
resources/chaosknoten/zammad/docker_compose/compose.yaml.j2
Normal file
|
|
@ -0,0 +1,162 @@
|
||||||
|
---
|
||||||
|
{#
|
||||||
|
https://github.com/zammad/zammad-docker-compose
|
||||||
|
Docker Compose does not allow defining variables in the compose file (only in .env files), so we use Jinja variables instead
|
||||||
|
see https://github.com/zammad/zammad-docker-compose/blob/master/.env
|
||||||
|
#}
|
||||||
|
{%- set ELASTICSEARCH_VERSION = "8.19.4" | quote -%}
|
||||||
|
{%- set IMAGE_REPO = "ghcr.io/zammad/zammad" | quote -%}
|
||||||
|
{%- set MEMCACHE_SERVERS = "zammad-memcached:11211" | quote -%}
|
||||||
|
{%- set MEMCACHE_VERSION = "1.6-alpine" | quote -%}
|
||||||
|
{%- set POSTGRES_DB = "zammad_production" | quote -%}
|
||||||
|
{%- set POSTGRES_HOST = "zammad-postgresql" | quote -%}
|
||||||
|
{%- set POSTGRES_USER = "zammad" | quote -%}
|
||||||
|
{%- set POSTGRES_PASS = secret__zammad_db_password | quote -%}
|
||||||
|
{%- set POSTGRES_PORT = "5432" | quote -%}
|
||||||
|
{%- set POSTGRES_VERSION = "15-alpine" | quote -%}
|
||||||
|
{%- set REDIS_URL = "redis://zammad-redis:6379" | quote -%}
|
||||||
|
{%- set REDIS_VERSION = "7-alpine" | quote -%}
|
||||||
|
{%- set RESTART = "always" | quote -%}
|
||||||
|
{%- set VERSION = "6" | quote -%}
|
||||||
|
x-shared:
|
||||||
|
zammad-service: &zammad-service
|
||||||
|
environment: &zammad-environment
|
||||||
|
MEMCACHE_SERVERS: {{ MEMCACHE_SERVERS }}
|
||||||
|
POSTGRESQL_DB: {{ POSTGRES_DB }}
|
||||||
|
POSTGRESQL_HOST: {{ POSTGRES_HOST }}
|
||||||
|
POSTGRESQL_USER: {{ POSTGRES_USER }}
|
||||||
|
POSTGRESQL_PASS: {{ POSTGRES_PASS }}
|
||||||
|
POSTGRESQL_PORT: {{ POSTGRES_PORT }}
|
||||||
|
REDIS_URL: {{ REDIS_URL }}
|
||||||
|
# Allow passing in these variables via .env:
|
||||||
|
AUTOWIZARD_JSON:
|
||||||
|
AUTOWIZARD_RELATIVE_PATH:
|
||||||
|
ELASTICSEARCH_ENABLED:
|
||||||
|
ELASTICSEARCH_HOST:
|
||||||
|
ELASTICSEARCH_PORT:
|
||||||
|
ELASTICSEARCH_SCHEMA:
|
||||||
|
ELASTICSEARCH_NAMESPACE:
|
||||||
|
ELASTICSEARCH_REINDEX:
|
||||||
|
ELASTICSEARCH_SSL_VERIFY:
|
||||||
|
NGINX_PORT:
|
||||||
|
NGINX_SERVER_NAME:
|
||||||
|
NGINX_SERVER_SCHEME: https
|
||||||
|
POSTGRESQL_DB_CREATE:
|
||||||
|
POSTGRESQL_OPTIONS:
|
||||||
|
RAILS_TRUSTED_PROXIES:
|
||||||
|
ZAMMAD_WEB_CONCURRENCY:
|
||||||
|
ZAMMAD_SESSION_JOBS:
|
||||||
|
ZAMMAD_PROCESS_SCHEDULED:
|
||||||
|
ZAMMAD_PROCESS_DELAYED_JOBS_WORKERS:
|
||||||
|
image: {{ IMAGE_REPO }}:{{ VERSION }}
|
||||||
|
restart: {{ RESTART }}
|
||||||
|
volumes:
|
||||||
|
- zammad-storage:/opt/zammad/storage
|
||||||
|
- zammad-var:/opt/zammad/var
|
||||||
|
depends_on:
|
||||||
|
- zammad-memcached
|
||||||
|
- zammad-postgresql
|
||||||
|
- zammad-redis
|
||||||
|
|
||||||
|
services:
|
||||||
|
|
||||||
|
zammad-backup:
|
||||||
|
command: ["zammad-backup"]
|
||||||
|
depends_on:
|
||||||
|
- zammad-railsserver
|
||||||
|
- zammad-postgresql
|
||||||
|
entrypoint: /usr/local/bin/backup.sh
|
||||||
|
environment:
|
||||||
|
<<: *zammad-environment
|
||||||
|
BACKUP_TIME: "03:00"
|
||||||
|
HOLD_DAYS: "10"
|
||||||
|
TZ: Europe/Berlin
|
||||||
|
image: postgres:{{ POSTGRES_VERSION }}
|
||||||
|
restart: {{ RESTART }}
|
||||||
|
volumes:
|
||||||
|
- zammad-backup:/var/tmp/zammad
|
||||||
|
- zammad-storage:/opt/zammad/storage:ro
|
||||||
|
- zammad-var:/opt/zammad/var:ro
|
||||||
|
- ./scripts/backup.sh:/usr/local/bin/backup.sh:ro
|
||||||
|
|
||||||
|
zammad-elasticsearch:
|
||||||
|
image: elasticsearch:{{ ELASTICSEARCH_VERSION }}
|
||||||
|
restart: {{ RESTART }}
|
||||||
|
volumes:
|
||||||
|
- elasticsearch-data:/usr/share/elasticsearch/data
|
||||||
|
environment:
|
||||||
|
discovery.type: single-node
|
||||||
|
xpack.security.enabled: 'false'
|
||||||
|
ES_JAVA_OPTS: ${ELASTICSEARCH_JAVA_OPTS:--Xms1g -Xmx1g}
|
||||||
|
|
||||||
|
zammad-init:
|
||||||
|
<<: *zammad-service
|
||||||
|
command: ["zammad-init"]
|
||||||
|
depends_on:
|
||||||
|
- zammad-postgresql
|
||||||
|
restart: on-failure
|
||||||
|
user: 0:0
|
||||||
|
volumes:
|
||||||
|
- zammad-storage:/opt/zammad/storage
|
||||||
|
- zammad-var:/opt/zammad/var
|
||||||
|
|
||||||
|
zammad-memcached:
|
||||||
|
command: memcached -m 256M
|
||||||
|
image: memcached:{{ MEMCACHE_VERSION }}
|
||||||
|
restart: {{ RESTART }}
|
||||||
|
|
||||||
|
zammad-nginx:
|
||||||
|
<<: *zammad-service
|
||||||
|
command: ["zammad-nginx"]
|
||||||
|
expose:
|
||||||
|
- "8080"
|
||||||
|
ports:
|
||||||
|
- "8080:8080"
|
||||||
|
depends_on:
|
||||||
|
- zammad-railsserver
|
||||||
|
volumes:
|
||||||
|
- zammad-var:/opt/zammad/var:ro # required for the zammad-ready check file
|
||||||
|
|
||||||
|
zammad-postgresql:
|
||||||
|
environment:
|
||||||
|
POSTGRES_DB: {{ POSTGRES_DB }}
|
||||||
|
POSTGRES_USER: {{ POSTGRES_USER }}
|
||||||
|
POSTGRES_PASSWORD: {{ POSTGRES_PASS }}
|
||||||
|
image: postgres:{{ POSTGRES_VERSION }}
|
||||||
|
restart: {{ RESTART }}
|
||||||
|
volumes:
|
||||||
|
- postgresql-data:/var/lib/postgresql/data
|
||||||
|
|
||||||
|
zammad-railsserver:
|
||||||
|
<<: *zammad-service
|
||||||
|
command: ["zammad-railsserver"]
|
||||||
|
|
||||||
|
zammad-redis:
|
||||||
|
image: redis:{{ REDIS_VERSION }}
|
||||||
|
restart: {{ RESTART }}
|
||||||
|
volumes:
|
||||||
|
- redis-data:/data
|
||||||
|
|
||||||
|
zammad-scheduler:
|
||||||
|
<<: *zammad-service
|
||||||
|
command: ["zammad-scheduler"]
|
||||||
|
volumes:
|
||||||
|
- /ansible_docker_compose/zammad-scheduler-database.yml:/opt/zammad/config/database.yml # workaround for connection pool issue
|
||||||
|
|
||||||
|
zammad-websocket:
|
||||||
|
<<: *zammad-service
|
||||||
|
command: ["zammad-websocket"]
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
elasticsearch-data:
|
||||||
|
driver: local
|
||||||
|
postgresql-data:
|
||||||
|
driver: local
|
||||||
|
redis-data:
|
||||||
|
driver: local
|
||||||
|
zammad-backup:
|
||||||
|
driver: local
|
||||||
|
zammad-storage:
|
||||||
|
driver: local
|
||||||
|
zammad-var:
|
||||||
|
driver: local
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
# Role `docker_compose`
|
# Role `docker_compose`
|
||||||
|
|
||||||
A role for deploying a Docker-Compose-based application.
|
A role for deploying a Docker-Compose-based application.
|
||||||
It deploys the given Compose file, an optional `.env` file, as well as configuration files to the specified hosts and makes sure all services are up-to-date and running.
|
It deploys the given Compose file as well as configuration files to the specified hosts and makes sure all services are up-to-date and running.
|
||||||
The Compose file gets deployed to `/ansible_docker_compose/compose.yaml`, the `.env` file to `/ansible_docker_compose/.env` and the configuration files get deployed into the `/ansible_docker_compose/configs/` directory.
|
The Compose file gets deployed to `/ansible_docker_compose/compose.yaml` and the configuration files get deployed into the `/ansible_docker_compose/configs/` directory.
|
||||||
A use case for the deployment of the additional configuration files is Composes top-level element `configs` in conjunction with the `configs` option for services.
|
A use case for the deployment of the additional configuration files is Composes top-level element `configs` in conjunction with the `configs` option for services.
|
||||||
|
|
||||||
## Supported Distributions
|
## Supported Distributions
|
||||||
|
|
|
||||||
|
|
@ -7,12 +7,6 @@ argument_specs:
|
||||||
`/ansible_docker_compose/compose.yaml`.
|
`/ansible_docker_compose/compose.yaml`.
|
||||||
type: str
|
type: str
|
||||||
required: true
|
required: true
|
||||||
docker_compose__env_file_content:
|
|
||||||
description: >-
|
|
||||||
The content of the .env file at
|
|
||||||
`/ansible_docker_compose/.env`.
|
|
||||||
type: str
|
|
||||||
required: false
|
|
||||||
docker_compose__configuration_files:
|
docker_compose__configuration_files:
|
||||||
description: >-
|
description: >-
|
||||||
A list of configuration files to be deployed in the
|
A list of configuration files to be deployed in the
|
||||||
|
|
|
||||||
|
|
@ -17,17 +17,6 @@
|
||||||
become: true
|
become: true
|
||||||
notify: docker compose down
|
notify: docker compose down
|
||||||
|
|
||||||
- name: deploy the .env file
|
|
||||||
ansible.builtin.copy:
|
|
||||||
content: "{{ docker_compose__env_file_content }}"
|
|
||||||
dest: /ansible_docker_compose/.env
|
|
||||||
mode: "0644"
|
|
||||||
owner: root
|
|
||||||
group: root
|
|
||||||
become: true
|
|
||||||
when: docker_compose__env_file_content is defined
|
|
||||||
notify: docker compose down
|
|
||||||
|
|
||||||
- name: make sure the `/ansible_docker_compose/configs` directory exists
|
- name: make sure the `/ansible_docker_compose/configs` directory exists
|
||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
path: /ansible_docker_compose/configs
|
path: /ansible_docker_compose/configs
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue