From 3464fe007a4b167c3290dae0e22bc9b4562a9ccb Mon Sep 17 00:00:00 2001 From: jakub Date: Wed, 18 Mar 2026 15:20:54 +0000 Subject: [PATCH] Update mikrotikbackup_clean.yml --- mikrotikbackup_clean.yml | 52 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/mikrotikbackup_clean.yml b/mikrotikbackup_clean.yml index 62eaddb..89ff4c8 100644 --- a/mikrotikbackup_clean.yml +++ b/mikrotikbackup_clean.yml @@ -56,4 +56,54 @@ ansible.builtin.copy: content: "{{ export_cfg.stdout[0] }}" dest: "{{ backup_dir }}/{{ router_name }}-{{ ts }}.rsc" - delegate_to: localhost \ No newline at end of file + delegate_to: localhost + + # ---------------------------- + # Upgrade router (tag: upgraded) + # ---------------------------- + - name: Check current and latest available package versions + community.routeros.command: + commands: /system package update check-for-updates + register: update_check + tags: upgraded + + - name: Parse installed and latest versions + set_fact: + installed_version: "{{ update_check.stdout[0] | regex_search('installed-version: ([\\d.]+)', '\\1') | first }}" + latest_version: "{{ update_check.stdout[0] | regex_search('latest-version: ([\\d.]+)', '\\1') | first }}" + tags: upgraded + + - name: Skip upgrade if already on latest + ansible.builtin.debug: + msg: "Router {{ router_name }} is already on latest version {{ installed_version }}. Skipping upgrade." + when: installed_version == latest_version + tags: upgraded + + - name: Trigger package download and install + community.routeros.command: + commands: /system package update install + register: upgrade_result + when: installed_version != latest_version + tags: upgraded + + - name: Wait for router to come back online after reboot + ansible.builtin.wait_for_connection: + delay: 30 + timeout: 180 + when: + - installed_version != latest_version + - upgrade_result is not failed + tags: upgraded + + - name: Confirm upgraded version + community.routeros.command: + commands: /system resource print + register: post_upgrade_info + when: installed_version != latest_version + tags: upgraded + + - name: Show post-upgrade RouterOS version + ansible.builtin.debug: + msg: "{{ post_upgrade_info.stdout[0] | regex_search('version: .+') }}" + when: installed_version != latest_version + tags: upgraded \ No newline at end of file