From 376635da3895fbd5af3e4133ab034a8e2ce60d42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A1rcio=20Fernandes?= Date: Sun, 20 Sep 2026 18:44:29 +0000 Subject: [PATCH] add host_maintenance --- playbooks/host_maintenance/os_info.yaml | 6 +++ playbooks/host_maintenance/os_update.yaml | 29 ++++++++++++ roles/docker_loki_client/handlers/main.yml | 1 - roles/host_maintenance/defaults/main.yml | 0 roles/host_maintenance/handlers/main.yml | 0 roles/host_maintenance/meta/main.yml | 52 +++++++++++++++++++++ roles/host_maintenance/tasks/main.yml | 0 roles/host_maintenance/tasks/os_info.yaml | 8 ++++ roles/host_maintenance/tasks/os_update.yaml | 29 ++++++++++++ 9 files changed, 124 insertions(+), 1 deletion(-) create mode 100644 playbooks/host_maintenance/os_info.yaml create mode 100644 playbooks/host_maintenance/os_update.yaml create mode 100644 roles/host_maintenance/defaults/main.yml create mode 100644 roles/host_maintenance/handlers/main.yml create mode 100644 roles/host_maintenance/meta/main.yml create mode 100644 roles/host_maintenance/tasks/main.yml create mode 100644 roles/host_maintenance/tasks/os_info.yaml create mode 100644 roles/host_maintenance/tasks/os_update.yaml diff --git a/playbooks/host_maintenance/os_info.yaml b/playbooks/host_maintenance/os_info.yaml new file mode 100644 index 0000000..105ec46 --- /dev/null +++ b/playbooks/host_maintenance/os_info.yaml @@ -0,0 +1,6 @@ +- debug: + msg: + - "Distribution: {{ hostvars[inventory_hostname].ansible_distribution }}" + - "Major version: {{ hostvars[inventory_hostname].ansible_distribution_major_version }}" + - "Version: {{ hostvars[inventory_hostname].ansible_distribution_version }}" + - "kernel: {{ hostvars[inventory_hostname].ansible_kernel }}" \ No newline at end of file diff --git a/playbooks/host_maintenance/os_update.yaml b/playbooks/host_maintenance/os_update.yaml new file mode 100644 index 0000000..3d955b7 --- /dev/null +++ b/playbooks/host_maintenance/os_update.yaml @@ -0,0 +1,29 @@ +- ansible.builtin.import_tasks: + file: os_info.yaml + +- name: Update all Packages to their latest version + ansible.builtin.apt: + update_cache: true + force_apt_get: true + +- name: Upgrade all packages on servers + ansible.builtin.apt: + upgrade: dist + force_apt_get: true + +- name: Check if a reboot is needed + register: reboot_required_file + stat: path=/var/run/reboot-required + +- name: Reboot server + reboot: + msg: "Reboot initiated by Ansible due to kernel updates" + connect_timeout: 5 + reboot_timeout: 300 + pre_reboot_delay: 0 + post_reboot_delay: 30 + test_command: uptime + when: reboot_required_file.stat.exists + +- ansible.builtin.import_tasks: + file: os_info.yaml diff --git a/roles/docker_loki_client/handlers/main.yml b/roles/docker_loki_client/handlers/main.yml index ed97d53..e69de29 100644 --- a/roles/docker_loki_client/handlers/main.yml +++ b/roles/docker_loki_client/handlers/main.yml @@ -1 +0,0 @@ ---- diff --git a/roles/host_maintenance/defaults/main.yml b/roles/host_maintenance/defaults/main.yml new file mode 100644 index 0000000..e69de29 diff --git a/roles/host_maintenance/handlers/main.yml b/roles/host_maintenance/handlers/main.yml new file mode 100644 index 0000000..e69de29 diff --git a/roles/host_maintenance/meta/main.yml b/roles/host_maintenance/meta/main.yml new file mode 100644 index 0000000..60634dc --- /dev/null +++ b/roles/host_maintenance/meta/main.yml @@ -0,0 +1,52 @@ +galaxy_info: + author: mf + description: host maintenance + company: limbosolutions + + # If the issue tracker for your role is not on github, uncomment the + # next line and provide a value + # issue_tracker_url: http://example.com/issue/tracker + + # Choose a valid license ID from https://spdx.org - some suggested licenses: + # - BSD-3-Clause (default) + # - MIT + # - GPL-2.0-or-later + # - GPL-3.0-only + # - Apache-2.0 + # - CC-BY-4.0 + license: license (GPL-2.0-or-later, MIT, etc) + + min_ansible_version: 2.1 + + # If this a Container Enabled role, provide the minimum Ansible Container version. + # min_ansible_container_version: + + # + # Provide a list of supported platforms, and for each platform a list of versions. + # If you don't wish to enumerate all versions for a particular platform, use 'all'. + # To view available platforms and versions (or releases), visit: + # https://galaxy.ansible.com/api/v1/platforms/ + # + # platforms: + # - name: Fedora + # versions: + # - all + # - 25 + # - name: SomePlatform + # versions: + # - all + # - 1.0 + # - 7 + # - 99.99 + + galaxy_tags: [] + # List tags for your role here, one per line. A tag is a keyword that describes + # and categorizes the role. Users find roles by searching for tags. Be sure to + # remove the '[]' above, if you add tags to this list. + # + # NOTE: A tag is limited to a single word comprised of alphanumeric characters. + # Maximum 20 tags per role. + +dependencies: [] + # List your role dependencies here, one per line. Be sure to remove the '[]' above, + # if you add dependencies to this list. diff --git a/roles/host_maintenance/tasks/main.yml b/roles/host_maintenance/tasks/main.yml new file mode 100644 index 0000000..e69de29 diff --git a/roles/host_maintenance/tasks/os_info.yaml b/roles/host_maintenance/tasks/os_info.yaml new file mode 100644 index 0000000..2415ba7 --- /dev/null +++ b/roles/host_maintenance/tasks/os_info.yaml @@ -0,0 +1,8 @@ +- name: Host Maintenance - Os update + hosts: + - '{{target|default("all")}}' + become: true + tasks: + - ansible.builtin.import_role: + name: mylimbo.globals.host_maintenance + tasks_from: os_update \ No newline at end of file diff --git a/roles/host_maintenance/tasks/os_update.yaml b/roles/host_maintenance/tasks/os_update.yaml new file mode 100644 index 0000000..3d955b7 --- /dev/null +++ b/roles/host_maintenance/tasks/os_update.yaml @@ -0,0 +1,29 @@ +- ansible.builtin.import_tasks: + file: os_info.yaml + +- name: Update all Packages to their latest version + ansible.builtin.apt: + update_cache: true + force_apt_get: true + +- name: Upgrade all packages on servers + ansible.builtin.apt: + upgrade: dist + force_apt_get: true + +- name: Check if a reboot is needed + register: reboot_required_file + stat: path=/var/run/reboot-required + +- name: Reboot server + reboot: + msg: "Reboot initiated by Ansible due to kernel updates" + connect_timeout: 5 + reboot_timeout: 300 + pre_reboot_delay: 0 + post_reboot_delay: 30 + test_command: uptime + when: reboot_required_file.stat.exists + +- ansible.builtin.import_tasks: + file: os_info.yaml