Deploy Zammad via Ansible and docker-compose
| inventory | ||
| roles/zammad | ||
| .gitignore | ||
| ansible.cfg | ||
| README.md | ||
| site.yml | ||
Deploy Zammad via Ansible and docker-compose
Prerequisites
- Docker and docker-compose (v1, Ansible does not support v2)
- Traefik v2
- Externally defined Docker network
traefik - Entrypoint
websecure - Certificate resolver
lehttp
- Externally defined Docker network
- PostgreSQL on host
- Listening on socket in
/var/run/postgresql/ - Database (
zammad_database_name, default:zammad) and user (zammad_database_user, default:zammad) created - (To use containerized Postgres, replace
postgresservice inroles/zammad/templates/docker-compose.yml.j2as follows:)
- Listening on socket in
postgres:
image: postgres:alpine
restart: unless-stopped
environment:
POSTGRES_DB: '{{ zammad_database_name }}'
POSTGRES_PASSWORD: '{{ zammad_database_password }}'
POSTGRES_USER: '{{ zammad_database_user }}'
networks:
- internal
- enough RAM (or set
zammad_enable_searchtono)
Deploy
Add target host(s) to group zammad in inventory/hosts and copy inventory/host_vars/example to inventory/host_vars/{hostname} for each host.
Adjust values as needed and run:
ansible-playbook -D -t zammad site.yml
Upgrade
ansible-playbook -D -t zammad -e 'zammad_upgrade=yes' site.yml