Files
operating-automation/playbooks/managed-mailcow/find-roundcube-versions.yaml
2025-10-08 09:32:02 +02:00

69 lines
2.0 KiB
YAML

---
- name: Prüfe mailcow-Installation und extrahiere Roundcube-Version aus CHANGELOG.md
hosts: all
become: true
vars:
mailcow_search_paths:
- /opt
- /data
- /root
- /storage
rc_dirs:
- rc
- roundcube
- roundcubemail
tasks:
- name: Finde mailcow-dockerized Verzeichnis
ansible.builtin.find:
file_type: directory
paths: "{{ mailcow_search_paths }}"
patterns: mailcow-dockerized
recurse: yes
register: mailcow_dir_result
ignore_errors: true
- name: Setze mailcow_root wenn gefunden
ansible.builtin.set_fact:
mailcow_root: "{{ mailcow_dir_result.files[0].path }}"
when: mailcow_dir_result.matched > 0
- name: Prüfe auf Roundcube-Ordner unter data/web
ansible.builtin.stat:
path: "{{ mailcow_root }}/data/web/{{ item }}"
loop: "{{ rc_dirs }}"
register: rc_stat
when: mailcow_root is defined
- name: Bestimme den tatsächlichen Roundcube-Pfad
ansible.builtin.set_fact:
rc_path: "{{ mailcow_root }}/data/web/{{ item.item }}"
loop: "{{ rc_stat.results }}"
when: item.stat.exists and item.stat.isdir
- name: Prüfe ob CHANGELOG.md existiert
ansible.builtin.stat:
path: "{{ rc_path }}/CHANGELOG.md"
register: changelog_stat
when: rc_path is defined
- name: Extrahiere Version aus CHANGELOG.md
ansible.builtin.shell: |
grep -m1 -Po '(?<=## Release )\S+' {{ rc_path }}/CHANGELOG.md
register: rc_version
changed_when: false
when:
- changelog_stat.stat.exists
- changelog_stat.stat.isfile
- name: Gib gefundene Roundcube-Version aus
ansible.builtin.debug:
msg: "Roundcube-Version (laut CHANGELOG.md): {{ rc_version.stdout }}"
when: rc_version.stdout != ""
- name: Warnung wenn keine CHANGELOG.md gefunden wurde
ansible.builtin.debug:
msg: "Keine CHANGELOG.md unter {{ rc_path }} gefunden."
when:
- rc_path is defined
- not changelog_stat.stat.exists