From ac9db2cd895ed5c88ad319b3affd30e88ec52e14 Mon Sep 17 00:00:00 2001 From: Mauro Torrez Date: Sun, 25 Aug 2019 21:54:19 -0300 Subject: [PATCH] arreglando bugs --- tasks/invoke_postconf.yml | 18 ++++++++++++++++ tasks/lookup_tables.yml | 2 +- templates/ldap_table.cf.j2 | 41 ++++++++++++++++++++++++++++++++++++ templates/sqlite_table.cf.j2 | 10 +++++++++ 4 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 tasks/invoke_postconf.yml create mode 100644 templates/ldap_table.cf.j2 create mode 100644 templates/sqlite_table.cf.j2 diff --git a/tasks/invoke_postconf.yml b/tasks/invoke_postconf.yml new file mode 100644 index 0000000..6573e97 --- /dev/null +++ b/tasks/invoke_postconf.yml @@ -0,0 +1,18 @@ +--- +# Invoke postconf with given arguments +# Useful for calling via include_role in other roles, using tasks_from + +- name: "Postconf invocation" + postconf: + state: "{{ postfix_custom.state | default('present') }}" + parameter: "{{ postfix_custom.parameter | default('') }}" + value: "{{ postfix_custom.value | default('') }}" + service: "{{ postfix_custom.service | default('') }}" + type: "{{ postfix_custom.type | default('') }}" + command: "{{ postfix_custom.command | default('') }}" + private: "{{ postfix_custom.private | default('') }}" + unprivileged: "{{ postfix_custom.unprivileged | default('') }}" + chroot: "{{ postfix_custom.chroot | default('') }}" + wakeup: "{{ postfix_custom.wakeup | default('') }}" + process_limit: "{{ postfix_custom.process_limit | default('') }}" + notify: reload postfix diff --git a/tasks/lookup_tables.yml b/tasks/lookup_tables.yml index c5df9d4..7dadd1d 100644 --- a/tasks/lookup_tables.yml +++ b/tasks/lookup_tables.yml @@ -4,7 +4,7 @@ src: ldap_table.cf.j2 dest: /etc/postfix/{{ domain }}_ldap_{{ item }}.cf" when: - - postfix_domain_config[domain][item+'_lookup'].provider|default(postfix_lookup_provider) == 'ldap' + - postfix_mail_domains[domain][item+'_lookup'].provider|default(postfix_lookup_provider) == 'ldap' loop: - user - alias diff --git a/templates/ldap_table.cf.j2 b/templates/ldap_table.cf.j2 new file mode 100644 index 0000000..fdfb3ca --- /dev/null +++ b/templates/ldap_table.cf.j2 @@ -0,0 +1,41 @@ +# Lookup +domain = {{ domain }} +server_host = {{ postfix_ldap_server }} +server_port = {{ postfix_ldap_port }} +version = {{ postfix_ldap_version }} +scope = {{ postfix_ldap_scope }} +bind = {{ postfix_ldap_bind }} +bind_dn = {{ postfix_ldap_bind_dn }} +bind_pw = {{ postfix_ldap_bind_pw }} +start_tls = {{ postfix_ldap_start_tls }} +tls_ca_cert_file = {{ postfix_ldap_tls_ca_cert_file }} +tls_ca_cert_dir = {{ postfix_ldap_tls_ca_cert_dir }} +search_base = ou=People,{{ domain.split('.') | map('regex_replace','^','dc=') | join(',') }} +query_filter = (&(objectClass=inetOrgPerson)(uid=%u)) +result_attribute = uid +result_format = {{ vmail_home }}/mail/{{ domain }}/%s/ + +# para sqlite +# dbpath = {{ vmail_home }}/{{ domain }}_users.sqlite +# query = {{ postfix_sqlite_user_query }} + +# queda por configurar estos params +# 'timeout', +# 'special_result_attribute', +# 'terminal_result_attribute', +# 'leaf_result_attribute', +# 'recursion_limit', +# 'expansion_limit', +# 'size_limit', +# 'dereference', +# 'chase_referrals', +# 'debuglevel', +# 'sasl_mechs', +# 'sasl_realm', +# 'sasl_authz_id', +# 'sasl_minssf', +# 'tls_cert', +# 'tls_key', +# 'tls_require_cert', +# 'tls_random_file', +# 'tls_cipher_suite', diff --git a/templates/sqlite_table.cf.j2 b/templates/sqlite_table.cf.j2 new file mode 100644 index 0000000..4fad9a3 --- /dev/null +++ b/templates/sqlite_table.cf.j2 @@ -0,0 +1,10 @@ +{% for param in [ + 'dbpath', + 'query', + 'result_format', + 'domain', + 'expansion_limit' + ] | intersect( dc[domain][item['type']+'_lookup'].keys() ) %} +%} +{{ param }} = {{ dc[domain][item['type']+'_lookup'][param] }} +{% endfor %}