commited current state
This commit is contained in:
9
playbooks/cleanups/cleanup-cmk-agent-plugins.yml
Normal file
9
playbooks/cleanups/cleanup-cmk-agent-plugins.yml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
- hosts: all
|
||||||
|
user: tincadmin
|
||||||
|
gather_facts: false
|
||||||
|
become: true
|
||||||
|
tasks:
|
||||||
|
- name: Include Checkmk Agent Plugins Cleanup task
|
||||||
|
ansible.builtin.include_role:
|
||||||
|
name: checkmk-monitoring
|
||||||
|
tasks_from: cleanup-agent-plugins
|
||||||
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
|
user: tincadmin
|
||||||
become: true
|
become: true
|
||||||
vars:
|
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
|
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
|
debug: true # Or False if you dont' wanna see verbose outputs of role outputs
|
||||||
|
|
||||||
|
|||||||
2
roles/checkmk-monitoring/defaults/main.yaml
Normal file
2
roles/checkmk-monitoring/defaults/main.yaml
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
checkmk_agent_plugins_to_remove:
|
||||||
|
- "docker-mailq-monitoring"
|
||||||
14
roles/checkmk-monitoring/tasks/cleanup-agent-plugins.yaml
Normal file
14
roles/checkmk-monitoring/tasks/cleanup-agent-plugins.yaml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
- name: "Find and remove specified Checkmk agent plugins"
|
||||||
|
block:
|
||||||
|
- name: "Remove Checkmk agent plugins"
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: "/usr/lib/check_mk_agent/local/{{ item }}"
|
||||||
|
state: absent
|
||||||
|
loop: "{{ checkmk_agent_plugins_to_remove }}"
|
||||||
|
when: checkmk_agent_plugins_to_remove is defined
|
||||||
|
|
||||||
|
- name: "Debug: Removed plugins"
|
||||||
|
ansible.builtin.debug:
|
||||||
|
msg: "Removed plugins: {{ checkmk_agent_plugins_to_remove }}"
|
||||||
|
when: checkmk_agent_plugins_to_remove is defined
|
||||||
@@ -4,6 +4,10 @@
|
|||||||
update_cache: yes
|
update_cache: yes
|
||||||
notify:
|
notify:
|
||||||
- apt cleanup
|
- apt cleanup
|
||||||
|
retries: 3
|
||||||
|
delay: 10
|
||||||
|
register: apt_result
|
||||||
|
until: apt_result is succeeded
|
||||||
|
|
||||||
- name: Check if a kernel update has been installed
|
- name: Check if a kernel update has been installed
|
||||||
shell: |
|
shell: |
|
||||||
|
|||||||
@@ -8,4 +8,9 @@
|
|||||||
state: present
|
state: present
|
||||||
snapname: "{{ snapshot_name | default('before_update') }}"
|
snapname: "{{ snapshot_name | default('before_update') }}"
|
||||||
retention: 2
|
retention: 2
|
||||||
|
timeout: 300
|
||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
|
retries: 3
|
||||||
|
delay: 10
|
||||||
|
register: snapshot_result
|
||||||
|
until: snapshot_result is succeeded
|
||||||
|
|||||||
@@ -7,6 +7,9 @@
|
|||||||
vmid: "{{ vmid }}"
|
vmid: "{{ vmid }}"
|
||||||
register: snapshot_info
|
register: snapshot_info
|
||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
|
retries: 3
|
||||||
|
delay: 10
|
||||||
|
until: snapshot_info is succeeded
|
||||||
|
|
||||||
- name: Delete all snapshots
|
- name: Delete all snapshots
|
||||||
community.proxmox.proxmox_snap:
|
community.proxmox.proxmox_snap:
|
||||||
@@ -20,3 +23,7 @@
|
|||||||
loop: "{{ snapshot_info.snapshots }}"
|
loop: "{{ snapshot_info.snapshots }}"
|
||||||
when: item.name != "current"
|
when: item.name != "current"
|
||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
|
retries: 3
|
||||||
|
delay: 10
|
||||||
|
until: item is succeeded
|
||||||
|
timeout: 300
|
||||||
@@ -9,6 +9,10 @@
|
|||||||
config: current
|
config: current
|
||||||
register: vm_info
|
register: vm_info
|
||||||
delegate_to: localhost
|
delegate_to: localhost
|
||||||
|
retries: 3
|
||||||
|
delay: 10
|
||||||
|
until: vm_info is succeeded
|
||||||
|
timeout: 60
|
||||||
|
|
||||||
- name: Extract VMID
|
- name: Extract VMID
|
||||||
ansible.builtin.set_fact:
|
ansible.builtin.set_fact:
|
||||||
|
|||||||
Reference in New Issue
Block a user