GithubHelp home page GithubHelp logo

hifis-net / ansible-role-zammad Goto Github PK

View Code? Open in Web Editor NEW
3.0 3.0 3.0 147 KB

:warning: PLEASE NOTE: This role has been migrated to our hifis.toolkit collection. :warning: An Ansible Role to install and configure the web-based open source user support/ticketing solution Zammad.

Home Page: https://galaxy.ansible.com/ui/repo/published/hifis/toolkit/

License: MIT License

Jinja 100.00%
zammad ansible ansible-role ansible-galaxy ticketing-system ticket-system

ansible-role-zammad's Introduction

Ansible role: Zammad

⚠️ This project is archived! ⚠️

This role has been migrated to our hifis.toolkit collection:

CI Ansible Galaxy Role License GitLab Release (latest by SemVer)

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.

Requirements

The below requirements are needed on the target host:

Role Variables

zammad_version: "6.2.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.

Dependencies

Zammad requires Elasticsearch and PostgreSQL database server. This role has been successfully tested together with the following roles:

Example Playbook

    - hosts: servers
      roles:
         - role: hifis.zammad
           become: yes

License

MIT

Author Information

This role was created in 2020 by HIFIS Software Services.

ansible-role-zammad's People

Contributors

christianhueserhzdr avatar dependabot[bot] avatar normo avatar tobiashuste avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

ansible-role-zammad's Issues

Allow to optionally configure additional server directives in Nginx config

In order to give the end user more flexibility, e.g. for handling multiple domains, handling domain changes, it would be nice to allow to configure additional server directives in the Nginx configuration.

I'd like to implement this that way, that a user gets the opportunity to add a complete server directive list which is then put into the configuration.

Example

zammad_nginx_additional_servers:
  - |
      server {
        listen 80;
        server_name zammad.example.com zammad-old.example.com;
        return 301 https://zammad.example.com$request_uri;
      }
  - |
      server {
        listen 443;
        server_name zammad-old.example.com;
        return 301 https://zammad.example.com$request_uri;
      }
  

Allow to disable Nginx version information

Currently, there is no option to prevent Nginx from sending its version number in the HTTP response. This can be configured via the server_tokens variable as described in the docs.

This can be solved by introducing a new configuration variable. It could be called zammad_nginx_server_tokens. As a default I suggest to set it to off. At the same time, this conifguration needs to be added to the Nginx configuration file: https://github.com/Helmholtz-UFZ/ansible-role-zammad/blob/83191ebdf7225067b30834ea9b36b8b597d55c9f/templates/nginx-zammad.conf.j2

Allow to specify SSL certificates via path only

In certain circumstances it is useful to be able to just reuse an existing private key and certificate already present on the machine. This can be especially useful, if one wants this role in combination with Let's Encrypt and certbot.

In principle, I suggest to use the given path only, if the variables zammad_ssl_key and zammad_ssl_cert are not containing a value.

Allow to install packages from the development channel

Currently, all packages are installed from the stable channel. It would be nice to be able to also configure the use of the develop channel for test instances.

The default will be stable. develop would have to be changed explicitly.

Relevant Lines

I would provide a PR.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.