--- - name: Create evoadmin account user: name: "{{ evoadminmail_username }}" comment: "Evoadmin Web Account" home: "{{ evoadminmail_home_dir}}" shell: /bin/bash password: "!" - name: Create log/ directory file: path: "{{ evoadminmail_home_dir}}/log" state: directory owner: "{{ evoadminmail_username }}" group: "{{ evoadminmail_username }}" mode: "0750" - name: Create www-evoadminmail group group: name: "www-{{ evoadminmail_username }}" state: present - name: "Create www-evoadmin (Debian 9 or later)" user: name: "www-{{ evoadminmail_username }}" home: "{{ evoadminmail_home_dir}}/www" shell: /bin/bash createhome: no when: ansible_distribution_major_version | version_compare('9', '>=') - name: Install Git apt: name: git state: present - name: "Clone evoadmin repository (Debian 9 or later)" git: repo: https://forge.evolix.org/evoadmin-mail.git dest: "{{ evoadminmail_document_root}}" version: dev update: yes when: ansible_distribution_major_version | version_compare('9', '>=') - name: "Change perms on evoadminmail document root" file: dest: "{{ evoadminmail_document_root }}" owner: "www-{{ evoadminmail_username }}" group: "{{ evoadminmail_username }}" recurse: yes - name: Copy config.ini in /etc/evolinux template: src: config.ini.j2 dest: /etc/evolinux/evoadmin-mail.ini owner: "{{ evoadminmail_username }}" group: "{{ evoadminmail_username }}" mode: "0640" when: ldap_admin_password is defined - name: Link for evoadmin config.ini file: src: /etc/evolinux/evoadmin-mail.ini dest: "{{ evoadminmail_document_root }}/config/config.ini" state: link - name: create a password for evoadmin user command: "apg -n 1 -m 16 -M lcN" register: evoadminmail_admin_password changed_when: False - name: upload ldif for evoadmin user template: src: evoadmin.ldif.j2 dest: /root/evolinux_evoadminmail_admin.ldif mode: "0640" - name: inject config command: slapadd -l /root/evolinux_evoadminmail_admin.ldif - name: create log file file: dest: /var/log/evoadmin-mail.log state: touch owner: "www-{{ evoadminmail_username }}" group: "adm" mode: "0640" - include_role: name: remount-usr when: evoadminmail_scripts_dir | search ("/usr") - name: "Create {{ evoadminmail_scripts_dir }}" file: dest: "{{ evoadminmail_scripts_dir }}" # recurse: yes mode: "0700" state: directory # we use a shell command to have a "changed" thet really reflects the result. - name: Fix permissions shell: "chmod -R --verbose u=rwX,g=rX,o= {{ item }}" register: command_result changed_when: "'changed' in command_result.stdout" # failed_when: False with_items: - "{{ evoadminmail_home_dir}}/www" #- name: Add evoadmin sudoers file # template: # src: sudoers.j2 # dest: /etc/sudoers.d/evoadmin # mode: "0600" # validate: "visudo -cf %s"