aim-web2.1.0rc9

This commit is contained in:
admin_rb
2026-09-22 19:23:17 +02:00
parent d095887d2e
commit 3dfc80b782
438 changed files with 31613 additions and 1510 deletions
+79
View File
@@ -0,0 +1,79 @@
- name: Checkmk | Collect managed change summary
ansible.builtin.set_fact:
_aim_checkmk_changes: '{{ _aim_check_copies | default({}) | aim_report_checkmk_changes(_checkmk_selected_scripts,
_checkmk_plugins_update | default({}), _aim_unifi_write | default({}), _aim_opposite_remove | default({}),
_checkmk_unifi_effective, ansible_check_mode) }}'
# No supported Windows package-inventory module exposes arbitrary installed MSI/registry products.
# Keep this bounded read-only registry query until an official module covers that data.
- name: Checkmk | Query Windows installed version
ansible.windows.win_shell: |
$ErrorActionPreference = 'Stop'
$roots = @('HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*', 'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*')
$products = @(Get-ItemProperty -Path $roots -ErrorAction SilentlyContinue | Where-Object { $_.DisplayName -match '^(Check_MK|Checkmk|Check MK).*Agent' })
$versions = @($products | Select-Object -ExpandProperty DisplayVersion -Unique)
$version = $null
if ($versions.Count -eq 1) { $version = [string]$versions[0] }
@{ installed=($products.Count -gt 0); version=$version; version_source='registry' } | ConvertTo-Json -Compress
register: _aim_checkmk_version_raw
changed_when: false
check_mode: false
when: ansible_facts.os_family == 'Windows'
- name: Checkmk | Collect Linux package facts
ansible.builtin.package_facts:
manager: auto
when: ansible_facts.os_family != 'Windows'
- name: Checkmk | Record Linux installed package rows
ansible.builtin.set_fact:
_aim_checkmk_linux_package_rows: "{{ ansible_facts.packages.get('check-mk-agent', []) }}"
when: ansible_facts.os_family != 'Windows'
- name: Checkmk | Observe Windows service state
ansible.windows.win_service_info:
name: '{{ item }}'
loop: '{{ _checkmk_windows_services | default([]) }}'
register: _aim_checkmk_final_services
when: ansible_facts.os_family == 'Windows'
- name: Checkmk | Collect Linux service facts
ansible.builtin.service_facts:
when: ansible_facts.os_family != 'Windows'
- name: Checkmk | Observe Linux unit state
ansible.builtin.set_fact:
_aim_checkmk_unit_state: >-
{{ ansible_facts.services.get(_checkmk_linux_units | first,
{'name': _checkmk_linux_units | first, 'state': 'unknown'}) }}
when: ansible_facts.os_family != 'Windows'
- name: Checkmk | Build installed state report
ansible.builtin.set_fact:
_aim_checkmk_state: >-
{{
(
(_aim_checkmk_version_raw.stdout | from_json)
if ansible_facts.os_family == 'Windows'
else {
'installed': (_aim_checkmk_linux_package_rows | default([]) | length) > 0,
'version': (
(_aim_checkmk_linux_package_rows | first).version
if (_aim_checkmk_linux_package_rows | default([]) | length) == 1
else none
),
'version_source': 'package_facts'
}
)
| aim_report_checkmk_state(
(
_aim_checkmk_final_services.results
| selectattr('services', 'defined')
| map(attribute='services')
| flatten
) if ansible_facts.os_family == 'Windows' else [_aim_checkmk_unit_state],
_aim_checkmk_changes,
_checkmk_package_install.changed | default(false),
ansible_check_mode
)
}}