From 798a6ef5fbf587fb2662f59e2c51b7ad799be833 Mon Sep 17 00:00:00 2001 From: jmrothst Date: Sun, 28 Mar 2021 04:38:25 +0000 Subject: [PATCH] If we know how to upgrade Fedora via DNF... do it. --- tasks/main.yml | 51 +++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 48 insertions(+), 3 deletions(-) diff --git a/tasks/main.yml b/tasks/main.yml index ad391dc..a585468 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -61,8 +61,53 @@ notify: - 'ensure_os_upgrade.package_facts' - 'ensure_os_upgrade.service_facts' - - - +- name: 'Ensure system-upgrade download' + when: + - ansible_system == 'Linux' + - ansible_distribution == 'Fedora' + - ensure_os_upgrade is defined + - ensure_os_upgrade.package_list is defined + - ensure_os_upgrade.package_list is iterable + - ensure_os_upgrade.target_version is defined + - ansible_distribution_major_version|int < ensure_os_upgrade.target_version|int + ansible.builtin.shell: > + dnf -y system-upgrade download --refresh --releasever={{ ensure_os_upgrade.target_version|int }} +- name: 'Ensure system-upgrade reboot' + when: + - ansible_system == 'Linux' + - ansible_distribution == 'Fedora' + - ensure_os_upgrade is defined + - ensure_os_upgrade.package_list is defined + - ensure_os_upgrade.package_list is iterable + - ensure_os_upgrade.target_version is defined + - ansible_distribution_major_version|int < ensure_os_upgrade.target_version|int + async: '1' + poll: '0' + ansible.builtin.shell: > + sleep 5 && dnf -y system-upgrade reboot +- name: 'Wait for the reboot' + when: + - ansible_system == 'Linux' + - ansible_distribution == 'Fedora' + - ensure_os_upgrade is defined + - ensure_os_upgrade.package_list is defined + - ensure_os_upgrade.package_list is iterable + - ensure_os_upgrade.target_version is defined + - ansible_distribution_major_version|int < ensure_os_upgrade.target_version|int + ansible.builtin.wait_for: + connect_timeout: '5' + delay: '300' + host: '{{ (ansible_ssh_host|default(ansible_host))|default(inventory_hostname) }}' + port: '22' + search_regex: 'OpenSSH' + sleep: '15' + timeout: '1800' + vars: + ansible_connection: 'local' +- name: 'Gather facts' + ansible.builtin.setup: + notify: + - 'ensure_os_upgrade.package_facts' + - 'ensure_os_upgrade.service_facts' - name: 'flush handlers' meta: 'flush_handlers' \ No newline at end of file