An Ansible Role that installs and configures the web-based open source user support/ticketing solution Zammad.
Note: This role does not install elasticsearch and postgresql server. See Dependencies.
The below requirements are needed on the target host:
- PyOpenSSL >= 0.15 or cryptography >= 1.2.3
zammad_version: "3.6.0"
Zammad version to be installed.
zammad_release_channel: "stable"
Choose another release channel for the Zammad packages. Please refer to https://packager.io/gh/zammad/zammad for a complete list.
zammad_domain_name: "{{ ansible_fqdn }}"
Zammad's fully qualified domain name.
zammad_nginx_config_path: "/etc/nginx/sites-available/zammad.conf"
File path to Zammad's Nginx config.
zammad_ssl_cert_path: "/etc/ssl/certs/zammad_cert.pem"
File path to the SSL/TLS certificate which is used for HTTPS.
zammad_ssl_key_path: "/etc/ssl/private/zammad_key.pem"
File path to the SSL/TLS private key which is used for HTTPS.
zammad_ssl_cert:
Content of SSL/TLS certificate (required).
zammad_ssl_key:
Content of SSL/TLS private key (required).
Please note: In the special case, that you previously put an SSL keypair
on the host, e.g. via Let's Encrypt, you must not configure the variables
zammad_ssl_cert
and zammad_ssl_key
. Nevertheless, in each case the role will
validate, if the SSL key pair is given under the paths zammad_ssl_key_path
and
zammad_ssl_cert_path
are valid.
zammad_nginx_server_tokens: "off"
Enable or disable emitting nginx version information in error pages or in the Server response header field. Please read the nginx docs for further information.
zammad_nginx_additional_server_configs:
- |
server {
listen 80;
server_name zammad.example.com zammad-old.example.com;
return 301 https://zammad.example.com$request_uri;
}
- |
server {
listen 443 ssl;
# ... SSL configuration
server_name zammad-old.example.com;
return 301 https://zammad.example.com$request_uri;
}
Configure additional server directives in the Nginx configuration. This allows to implement more use case specific adjustments, e.g. configuring multiple domains or the redirection of outdated domains to the most recent one.
elasticsearch_url: "http://localhost:9200"
Elasticsearch server address.
Zammad requires Elasticsearch and PostgreSQL database server. This role has been successfully tested together with the following roles:
- Elasticsearch - elastic.elasticsearch
- PostgreSQL - geerlingguy.postgresql
- hosts: servers
roles:
- role: ufz.zammad
become: yes
MIT
This role was created in 2020 by HIFIS Software Services.