diff --git a/group_vars/autoconfig.yml b/group_vars/autoconfig.yml new file mode 100644 index 0000000000000000000000000000000000000000..02d5805cc9bf9f6b9762aa34ccaa0803b4aa1bc8 --- /dev/null +++ b/group_vars/autoconfig.yml @@ -0,0 +1,24 @@ +--- +glob_autoconfig: + provider: crans.org + domains: + - crans.org + - crans.eu + - crans.fr + name: + long: Cr@ns Mail + short: Cr@ns + incoming: + type: imap + hostname: imap.crans.org + port: 993 + socket_type: SSL + username: "%EMAILLOCALPART%" + authentication: plain + outgoing: + type: smtp + hostname: smtp.crans.org + port: 465 + socket_type: SSL + username: "%EMAILLOCALPART%" + authentication: plain diff --git a/host_vars/hodaur.adm.crans.org.yml b/host_vars/hodaur.adm.crans.org.yml index 53d3a98a63a5a588ccdc109e84b1082b780f441b..90e9078bd2d5a6eabe4068b5d20d478da7751e28 100644 --- a/host_vars/hodaur.adm.crans.org.yml +++ b/host_vars/hodaur.adm.crans.org.yml @@ -2,3 +2,6 @@ interfaces: adm: ens18 srv: ens19 + +loc_autoconfig: + path: /var/www/autoconfig.crans.org diff --git a/hosts b/hosts index a4e8b96d641c72bc919fa570a5ec38f2293e921c..906cf4e44c01018252b11791bb71da1fa0f1491b 100644 --- a/hosts +++ b/hosts @@ -3,6 +3,9 @@ [adh_server] zamok.adm.crans.org +[autoconfig] +hodaur.adm.crans.org + [backup_data] cameron.adm.crans.org diff --git a/plays/autoconfig.yml b/plays/autoconfig.yml new file mode 100755 index 0000000000000000000000000000000000000000..e8dfcd84254d214d2397cff4effaa11046440316 --- /dev/null +++ b/plays/autoconfig.yml @@ -0,0 +1,7 @@ +#!/usr/bin/env ansible-playbook +--- +- hosts: autoconfig + vars: + autoconfig: "{{ glob_autoconfig | default({}) | combine(loc_autoconfig | default({})) }}" + roles: + - autoconfig diff --git a/roles/autoconfig/tasks/main.yml b/roles/autoconfig/tasks/main.yml new file mode 100644 index 0000000000000000000000000000000000000000..0d06b2063facd92b705a6e9f7934c8247c552c89 --- /dev/null +++ b/roles/autoconfig/tasks/main.yml @@ -0,0 +1,9 @@ +- name: Create base directory + file: + path: "{{ autoconfig.path }}/mail" + state: directory + +- name: Deploy autoconfiguration website + template: + src: mail/config-v1.1.xml.j2 + dest: "{{ autoconfig.path }}/mail/config-v1.1.xml" diff --git a/roles/autoconfig/templates/mail/config-v1.1.xml.j2 b/roles/autoconfig/templates/mail/config-v1.1.xml.j2 new file mode 100644 index 0000000000000000000000000000000000000000..d69170c5b3a6c2bbf531578d71f9ad874f8826fb --- /dev/null +++ b/roles/autoconfig/templates/mail/config-v1.1.xml.j2 @@ -0,0 +1,25 @@ +<clientConfig version="1.0"> + <emailProvider id="{{ autoconfig.provider }}"> +{% for domain in autoconfig.domains %} + <domain>{{ domain }}</domain> +{% endfor %} + <displayName>{{ autoconfig.name.long }}</displayName> + <displayShortName>{{ autoconfig.name.short }}</displayShortName> +{% set i = autoconfig.incoming %} + <incomingServer type="{{ i.type }}"> + <hostname>{{ i.hostname }}</hostname> + <port>{{ i.port }}</port> + <socketType>{{ i.socket_type }}</socketType> + <username>{{ i.username }}</username> + <authentication>{{ i.authentication }}</authentication> + </incomingServer> +{% set o = autoconfig.outgoing %} + <outgoingServer type="{{ o.type }}"> + <hostname>{{ o.hostname }}</hostname> + <port>{{ o.port }}</port> + <socketType>{{ o.socket_type }}</socketType> + <username>{{ o.username }}</username> + <authentication>{{ o.authentication }}</authentication> + </outgoingServer> + </emailProvider> +</clientConfig>