Files
operating-automation/playbooks/managed-mailcow/count-mailboxes.yml
2025-10-08 09:32:02 +02:00

43 lines
1.4 KiB
YAML

---
- name: Mailcow Mailbox Counter
hosts: all
gather_facts: no
tasks:
- import_role:
name: managed-mailcow
tasks_from: find-mailcow-composedir.yml
- name: Read mailcow.conf and extract DBROOT
ansible.builtin.shell: |
bash -c 'source {{ mailcow_dir_result.files[0].path }}/mailcow.conf && echo $DBROOT'
register: dbroot_output
- name: Count active mailboxes from mailcow database
ansible.builtin.shell: |
docker compose exec mysql-mailcow \
mysql -u root -p{{ dbroot_output.stdout }} -D mailcow -N -e \
"SELECT COUNT(*) FROM mailbox WHERE active=1;"
args:
chdir: "{{ mailcow_dir_result.files[0].path }}"
register: mailbox_count
changed_when: false
- name: Set fact with mailbox count as integer
ansible.builtin.set_fact:
mailbox_count_int: "{{ mailbox_count.stdout | int }}"
- name: Summiere alle Mailboxen über alle Hosts
hosts: all
gather_facts: false
run_once: true
tasks:
- name: Summiere aktive Mailboxen
ansible.builtin.set_fact:
total_mailboxes: "{{ (total_mailboxes | default(0) | int) + (item.value.mailbox_count_int | default(0) | int) }}"
loop: "{{ hostvars | dict2items }}"
when: "'mailbox_count_int' in item.value"
- name: Zeige Gesamtsumme
ansible.builtin.debug:
msg: "Gesamtanzahl aktiver Mailboxen: {{ total_mailboxes }}"