---
- name: "π¬ Provision the mailbox of '{{ mailu_user_name }}@{{ MAILU_DOMAIN }}'"
when: "'mailbox' in mailu_user_accounts"
block:
- name: "β
Ensure user '{{ mailu_user_key }};{{ mailu_user_name }}@{{ MAILU_DOMAIN }}'"
ansible.builtin.shell: >
container exec -i -e MAILU_USER_PASSWORD {{ MAILU_ADMIN_CONTAINER_ADDRESS }}
sh -c 'exec flask mailu {{ mailu_action }} "$1" "$2" -- "$MAILU_USER_PASSWORD"'
_ {{ mailu_user_name | quote }} {{ MAILU_DOMAIN | quote }}
environment:
MAILU_USER_PASSWORD: "{{ mailu_user_password }}"
register: mailu_user_result
retries: 12
delay: 10
until: >
mailu_user_result.rc == 0 or
('exists' in (mailu_user_result.stderr | lower)) or
('already' in (mailu_user_result.stderr | lower)) or
('duplicate' in (mailu_user_result.stderr | lower))
changed_when: mailu_user_result.rc == 0
failed_when: >
mailu_user_result.rc != 0 and
(
('exists' not in (mailu_user_result.stderr | lower)) and
('already' not in (mailu_user_result.stderr | lower)) and
('duplicate' not in (mailu_user_result.stderr | lower))
)
no_log: "{{ MASK_CREDENTIALS_IN_LOGS | bool }}"
timeout: "{{ lookup('timeout', 120) | int }}"
- name: "π§ Set password '{{ mailu_user_key }};{{ mailu_user_name }}@{{ MAILU_DOMAIN }}'"
ansible.builtin.shell: >
container exec -i -e MAILU_USER_PASSWORD {{ MAILU_ADMIN_CONTAINER_ADDRESS }}
sh -c 'exec flask mailu password "$1" "$2" -- "$MAILU_USER_PASSWORD"'
_ {{ mailu_user_name | quote }} {{ MAILU_DOMAIN | quote }}
environment:
MAILU_USER_PASSWORD: "{{ mailu_user_password }}"
register: mailu_user_password_change
retries: 12
delay: 10
until: mailu_user_password_change.rc == 0
changed_when: mailu_user_password_change.rc == 0
failed_when: mailu_user_password_change.rc != 0
no_log: "{{ MASK_CREDENTIALS_IN_LOGS | bool }}"
timeout: "{{ lookup('timeout', 120) | int }}"
- name: "π Create Mailu API Token for {{ mailu_user_name }}"
include_tasks: utils/manage/user_token.yml
when: "'bot' in mailu_user_roles"