69 lines
2.0 KiB
YAML
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 |