diff --git a/group_vars/prod b/group_vars/prod index e60bae0dc036573bcb15fd22d829dfbc2f7b34ac..a9fb48e7a9e87fc14776fb4f26187d4fe62c9926 100644 --- a/group_vars/prod +++ b/group_vars/prod @@ -25,6 +25,14 @@ smtp_port: 25 noreply_email_user: noreply@warpzone.ms +# Globale Mail konfiguration +mail_domains: + warpzonems: + maildomain: warpzone.ms + mxserver: mail.warpzone.ms + mxhostname: webserver + + # Zentrale InfluxDb für Systemmonitoring influxdb_sysmon: url: "http://192.168.0.201:18086" diff --git a/host_vars/webserver b/host_vars/webserver index a1d6b53352a0996b01613c6116663118cc7acf5a..c6a394dfef5b47cb837b878620c3679b86bcbcc3 100644 --- a/host_vars/webserver +++ b/host_vars/webserver @@ -33,6 +33,8 @@ webserver_domains: - "warpzone.ms" - "api.warpzone.ms" - "auth.warpzone.ms" + - "autodiscover.warpzone.ms" + - "autoconfig.warpzone.ms" - "alerta.warpzone.ms" - "gitlab.warpzone.ms" - "infra.warpzone.ms" diff --git a/site.yml b/site.yml index 9c518c24e677e38b248a99f7a536b6f5de1a0a8c..b72a35ac92a31f97a5ea5be0480ee92fd2e1653b 100644 --- a/site.yml +++ b/site.yml @@ -59,7 +59,12 @@ servicename: traefik, domain: "warpzone.ms", domain_default: "www.warpzone.ms" - } + } + - { + role: webserver/docker_autodiscover, tags: autodiscover, + servicename: autodiscover, + basedir: /srv/autodiscover + } - { role: webserver/docker_dokuwiki, tags: dokuwiki, servicename: "dokuwiki", diff --git a/webserver/docker_autodiscover/tasks/main.yml b/webserver/docker_autodiscover/tasks/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..039583792345c18142b09725e777e341bd1f6851 --- /dev/null +++ b/webserver/docker_autodiscover/tasks/main.yml @@ -0,0 +1,32 @@ +--- + +- name: "create folder struct for {{ servicename }}" + file: + path: "{{ item }}" + state: "directory" + with_items: + - "{{ basedir }}" + + +- name: deploy {{ servicename }} config + template: + dest: "{{ basedir }}/{{ item }}" + src: "{{ item }}" + with_items: + - docker-compose.yml + register: config + + +# Start containers +- name: "stop {{ servicename }} docker" + docker_compose: + project_src: "{{ basedir }}" + state: absent + when: config.changed + + +- name: "start {{ servicename }} docker" + docker_compose: + project_src: "{{ basedir }}" + state: present + diff --git a/webserver/docker_autodiscover/templates/docker-compose.yml b/webserver/docker_autodiscover/templates/docker-compose.yml new file mode 100644 index 0000000000000000000000000000000000000000..34257fe28ab867b258afc5995a923b642e46298b --- /dev/null +++ b/webserver/docker_autodiscover/templates/docker-compose.yml @@ -0,0 +1,34 @@ +version: '2.1' + +services: + +{% for domain in mail_domains %} + + {{ domain }}: + image: monogramm/autodiscover-email-settings:1.4.0 + environment: + - DOMAIN={{ mail_domains[domain].maildomain }} + - IMAP_HOST={{ mail_domains[domain].mxserver }} + - IMAP_PORT=993 + - IMAP_SOCKET=SSL + - POP_HOST={{ mail_domains[domain].mxserver }} + - POP_PORT=995 + - POP_SOCKET=SSL + - SMTP_HOST={{ mail_domains[domain].mxserver }} + - SMTP_PORT=587 + - SMTP_SOCKET=STARTTLS + labels: + - traefik.enable=true + - traefik.http.routers.{{ servicename }}-{{ domain }}.rule=Host(`autodiscover.{{ mail_domains[domain].maildomain }}`) || Host(`autoconfig.{{ mail_domains[domain].maildomain }}`) + - traefik.http.routers.{{ servicename }}-{{ domain }}.entrypoints=websecure + - traefik.http.services.{{ servicename }}-{{ domain }}.loadbalancer.server.port=8000 + networks: + - default + - web + +{% endfor %} + +networks: + web: + external: true +