commited current state
This commit is contained in:
48
playbooks/managed-mailcow/find-roundcube-installations.yaml
Normal file
48
playbooks/managed-mailcow/find-roundcube-installations.yaml
Normal file
@@ -0,0 +1,48 @@
|
||||
---
|
||||
- name: List mailcow installations with Roundcube
|
||||
hosts: all
|
||||
user: tincadmin
|
||||
become: true
|
||||
gather_facts: false
|
||||
|
||||
vars:
|
||||
mailcow_search_paths:
|
||||
- /opt
|
||||
- /data
|
||||
- /root
|
||||
- /storage
|
||||
rc_dirs:
|
||||
- rc
|
||||
- roundcube
|
||||
- roundcubemail
|
||||
|
||||
tasks:
|
||||
- name: Find mailcow-dockerized directory
|
||||
ansible.builtin.find:
|
||||
file_type: directory
|
||||
paths: "{{ mailcow_search_paths }}"
|
||||
patterns: mailcow-dockerized
|
||||
recurse: true
|
||||
register: mailcow_dir_result
|
||||
ignore_errors: true
|
||||
|
||||
- name: Set mailcow_root if found
|
||||
ansible.builtin.set_fact:
|
||||
mailcow_root: "{{ mailcow_dir_result.files[0].path }}"
|
||||
when: mailcow_dir_result.matched | default(0) > 0
|
||||
|
||||
- name: Find Roundcube directories under data/web
|
||||
ansible.builtin.find:
|
||||
paths: "{{ mailcow_root }}/data/web"
|
||||
file_type: directory
|
||||
patterns: "{{ rc_dirs }}"
|
||||
recurse: false
|
||||
register: roundcube_result
|
||||
when: mailcow_root is defined
|
||||
|
||||
- name: Output only affected installations
|
||||
ansible.builtin.debug:
|
||||
msg: "{{ inventory_hostname }}: {{ roundcube_result.files | map(attribute='path') | join(', ') }}"
|
||||
when:
|
||||
- roundcube_result is defined
|
||||
- roundcube_result.matched | default(0) > 0
|
||||
@@ -1,70 +0,0 @@
|
||||
---
|
||||
- name: Check mailcow installation and extract Roundcube version from CHANGELOG.md
|
||||
hosts: all
|
||||
user: tincadmin
|
||||
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: Check for Roundcube folder under data/web
|
||||
ansible.builtin.stat:
|
||||
path: "{{ mailcow_root }}/data/web/{{ item }}"
|
||||
loop: "{{ rc_dirs }}"
|
||||
register: rc_stat
|
||||
when: mailcow_root is defined
|
||||
|
||||
- name: Determine the actual Roundcube path
|
||||
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: Check if CHANGELOG.md exists
|
||||
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: Warning if no CHANGELOG.md found
|
||||
ansible.builtin.debug:
|
||||
msg: "No CHANGELOG.md found under {{ rc_path }}."
|
||||
when:
|
||||
- rc_path is defined
|
||||
- not changelog_stat.stat.exists
|
||||
@@ -3,7 +3,7 @@
|
||||
user: tincadmin
|
||||
become: true
|
||||
vars:
|
||||
github_mailcow_ver: "2026-01" # GitHub Version Tag | Value to compare the current running mailcow version to.
|
||||
github_mailcow_ver: "2026-03b" # GitHub Version Tag | Value to compare the current running mailcow version to.
|
||||
do_snapshots: true # Set to true to create Proxmox snapshots before updating mailcow
|
||||
debug: true # Or False if you dont' wanna see verbose outputs of role outputs
|
||||
|
||||
@@ -73,4 +73,4 @@
|
||||
- import_role:
|
||||
name: roles/docker
|
||||
tasks_from: cleanup-all.yml
|
||||
when: update_mailcow is changed
|
||||
when: update_mailcow is changed
|
||||
|
||||
Reference in New Issue
Block a user