From 3330eada30fc3f50d56f44e98f1fad399882e2c6 Mon Sep 17 00:00:00 2001 From: Luca Matteo Spoljarevic Date: Sun, 23 Nov 2025 19:31:20 +0100 Subject: [PATCH] Added playbook to gather system information --- checks/status.yml | 63 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 checks/status.yml diff --git a/checks/status.yml b/checks/status.yml new file mode 100644 index 0000000..d6d5c7b --- /dev/null +++ b/checks/status.yml @@ -0,0 +1,63 @@ +--- +- name: System Status Report for all hosts + hosts: all + gather_facts: yes + become: yes + + tasks: + + - name: Collect hostname + ansible.builtin.set_fact: + sys_hostname: "{{ ansible_hostname }}" + + - name: Collect all IPv4 addresses + ansible.builtin.set_fact: + sys_ipv4: "{{ ansible_all_ipv4_addresses }}" + + - name: Collect uptime + ansible.builtin.command: uptime -p + register: uptime_raw + changed_when: false + + - name: Determine package manager + ansible.builtin.set_fact: + pkg_mgr: >- + {% if ansible_facts.os_family == 'Debian' %} + apt + {% else %} + dnf + {% endif %} + + - name: Check pending upgrades (APT) + ansible.builtin.shell: "apt list --upgradable 2>/dev/null | grep -v 'Listing...'" + when: pkg_mgr == "apt" + register: pending_updates_apt + changed_when: false + + - name: Check pending upgrades (DNF) + ansible.builtin.command: "dnf check-update" + when: pkg_mgr == "dnf" + register: pending_updates_dnf + failed_when: false + changed_when: false + + - name: Build update list fact + ansible.builtin.set_fact: + sys_updates: >- + {% if pkg_mgr == "apt" %} + {{ pending_updates_apt.stdout_lines | default([]) }} + {% else %} + {{ pending_updates_dnf.stdout_lines | default([]) }} + {% endif %} + + + - name: Print system status summary + ansible.builtin.debug: + msg: + - "Hostname: {{ sys_hostname }}" + - "IPv4 Addresses: {{ sys_ipv4 }}" + - "Uptime: {{ uptime_raw.stdout }}" + - "Package Manager: {{ pkg_mgr }}" + - "Pending Updates:" + - "{{ sys_updates | default('Keine Updates verfügbar') }}" +