131 lines
7.4 KiB
XML
131 lines
7.4 KiB
XML
<?xml version='1.0' encoding='UTF-8'?>
|
||
<rougail version="0.10">
|
||
<services>
|
||
<service name="postfix" target="multi-user">
|
||
<override engine="none"/>
|
||
<certificate format="pem" authority="External" type="server" domain="submission_domainname" provider="mail_crt_provider" certificate_type="variable">submission_domainname</certificate>
|
||
<certificate format="pem" server="last_server_name" domain="last_server_name" authority="InternalMail" owner="postfix" type="server">postfixlocal</certificate>
|
||
<certificate authority="Mail" owner="postfix" type="server">postfix</certificate>
|
||
<certificate authority="LDAP" owner="postfix" server="ldap_server_address">postfix_ldap_client</certificate>
|
||
<file engine="none" source="sysuser-postfix.conf">/sysusers.d/1postfix.conf</file>
|
||
<file engine="none" source="tmpfile-postfix.conf">/tmpfiles.d/0postfix.conf</file>
|
||
<file engine="ansible">/etc/postfix/main.cf</file>
|
||
<file engine="none">/etc/postfix/master.cf</file>
|
||
<file engine="ansible">/etc/postfix/relay_passwd</file>
|
||
<file engine="ansible">/etc/postfix/ldapsource.cf</file>
|
||
<file engine="ansible">/etc/postfix/sni</file>
|
||
<file engine="ansible" mode="700">/sbin/risotto_backup</file>
|
||
</service>
|
||
<service name='dovecot-init'>
|
||
<override engine="none"/>
|
||
<file engine="none">/etc/nginx/default.d/autoconfig.conf</file>
|
||
</service>
|
||
<service name='nginx'>
|
||
<file engine="ansible" source='config-v1.1.xml' file_type="variable" variable="mail_domains">well_known_filenames</file>
|
||
</service>
|
||
<service name="dovecot" target="multi-user">
|
||
<certificate authority="External" type="server" domain="imap_domainname" provider="mail_crt_provider" certificate_type="variable">imap_domainname</certificate>
|
||
<certificate authority="IMAP" domain="last_server_name" owner="dovecot" type="server">dovecot</certificate>
|
||
<file engine="none" source="sysuser-dovecot.conf">/sysusers.d/1dovecot.conf</file>
|
||
<file engine="none" source="tmpfile-dovecot.conf">/tmpfiles.d/0dovecot.conf</file>
|
||
<file engine='none'>/etc/dovecot/conf.d/10-logging.conf</file>
|
||
<file engine='none'>/etc/dovecot/conf.d/10-auth.conf</file>
|
||
<file engine='none'>/etc/dovecot/conf.d/10-mail.conf</file>
|
||
<file engine="ansible">/etc/dovecot/conf.d/10-master.conf</file>
|
||
<file engine="ansible">/etc/dovecot/conf.d/10-ssl.conf</file>
|
||
<file engine='none'>/etc/dovecot/conf.d/15-ldap.conf</file>
|
||
<file engine='none'>/etc/dovecot/conf.d/30-service-stats.conf</file>
|
||
<file engine='none'>/etc/dovecot/conf.d/00-risotto.conf</file>
|
||
<!--plain authentification-->
|
||
<file engine="none">/etc/dovecot/conf.d/auth-ldap.conf.ext</file>
|
||
<file engine="ansible">/etc/dovecot/dovecot-ldap.conf.ext</file>
|
||
<!--oauth2 authentification-->
|
||
<file engine="none">/etc/dovecot/conf.d/auth-oauth2.conf.ext</file>
|
||
<file engine="ansible">/etc/dovecot/dovecot-oauth2.conf.ext</file>
|
||
<!--internal authentification-->
|
||
<file engine="ansible" filelist="copy_tests">/tests/imap.yml</file>
|
||
</service>
|
||
</services>
|
||
<variables>
|
||
<family name="network">
|
||
<variable name="incoming_ports" redefine="True">
|
||
<value>587</value>
|
||
<value>993</value>
|
||
</variable>
|
||
</family>
|
||
<family name="ldap">
|
||
<family name="client">
|
||
<variable name='ldapclient_family' redefine="True">
|
||
<value>all</value>
|
||
</variable>
|
||
<variable name="ldap_key_file_owner" redefine="True">
|
||
<value>dovecot</value>
|
||
</variable>
|
||
</family>
|
||
</family>
|
||
<family name="mail" description="Mail configuration" help="Configure IMAP servers and submission to access email accounts and send emails">
|
||
<family name="domain" description="Mail domain" leadership="True">
|
||
<variable name="mail_domains" type="domainname" description="Final destination email address" mandatory="True" multi="True" supplier="LMTP:criteria" test="example.net" help="These domain names are the domain names for emails (user@*example.net*) and for auto configuration of email clients (https://*example.net*/.well-known/autoconfig/mail/config-v1.1.xml)"/>
|
||
<variable name="mail_domains_calc" type="domainname" hidden="True"/>
|
||
<variable name="imap_domainname" type="domainname" description="External IMAP server address" mandatory="True" test="imap.example.net" help='Matches TLS connection’s SNI name, if it’s sent by the client. For some email clients, use in DNS configuration a line like "_submissions._tcp IN SRV 1 587 *imap.example.net*."'/>
|
||
<variable name="submission_domainname" type="domainname" description="External submission server address" mandatory="True" test="submission.example.net" help='Matches TLS connection’s SNI name, if it’s sent by the client. For some email clients, add in DNS configuration a line like "_imaps._tcp IN SRV 0 1 993 *submission.example.net*."'/>
|
||
</family>
|
||
<variable name="mail_crt_provider" type="choice" description="Type of certificate autority signing external IMAP and submission domain certificates" mandatory="True" mode="basic" help="The certificate can be self-signed (therefore invalid by default for the client) or obtained via the Let's Encrypt service (generally valid for the client)">
|
||
<value>self-signed</value>
|
||
<choice>self-signed</choice>
|
||
<choice>letsencrypt</choice>
|
||
</variable>
|
||
</family>
|
||
<family name="dovecot" description="IMAP mail server">
|
||
<variable name="imap_internal_addresses" type="domainname" description="IMAP server connexion" mandatory="True" provider="IMAP" multi="True" hidden="True"/>
|
||
<variable name="well_known_filenames" type="filename" hidden='True' multi="True"/>
|
||
</family>
|
||
<family name="revprox">
|
||
<family name="revprox_client">
|
||
<variable name="revprox_client_external_domainnames" redefine="True" hidden="True"/>
|
||
<variable name="revprox_client_web_address" redefine="True" hidden="True"/>
|
||
</family>
|
||
</family>
|
||
<family name="nginx" hidden="True">
|
||
<variable name="nginx_root" redefine='True'>
|
||
<value>/var/www/html</value>
|
||
</variable>
|
||
</family>
|
||
<!-- just for doc ... -->
|
||
<family name="oauth2_client" hidden="True"/>
|
||
</variables>
|
||
<constraints>
|
||
<!--fill name="calc_value">
|
||
<param type="variable">domain_name_eth0</param>
|
||
<target>imap_internal_address</target>
|
||
</fill-->
|
||
<fill name="calc_value">
|
||
<param type="variable">mail_domains</param>
|
||
<target>mail_domains_calc</target>
|
||
</fill>
|
||
<fill name="calc_value">
|
||
<param>/var/www/html/mail/</param>
|
||
<param type="variable">mail_domains</param>
|
||
<param>/autodiscover/autodiscover.xml</param>
|
||
<!--param>/config-v1.1.xml</param-->
|
||
<param name="join"></param>
|
||
<param name="multi" type="boolean">True</param>
|
||
<target>well_known_filenames</target>
|
||
</fill>
|
||
<fill name="calc_well_known">
|
||
<param type="index"/>
|
||
<param type="variable">domain_name_eth0</param>
|
||
<param type="variable">mail_domains</param>
|
||
<target>revprox_client_web_address</target>
|
||
</fill>
|
||
<fill name="calc_domains">
|
||
<param type="variable">mail_domains</param>
|
||
<target>revprox_client_external_domainnames</target>
|
||
</fill>
|
||
<fill name="calc_locations">
|
||
<param type="variable">revprox_client_external_domainnames</param>
|
||
<param type="index"/>
|
||
<target>revprox_client_location</target>
|
||
</fill>
|
||
</constraints>
|
||
</rougail>
|