diff --git a/roles/upgrade/tasks/main.yml b/roles/upgrade/tasks/main.yml index 535141fb2c64e52471997cf1f6c15ea54c372907..68967867ab828dcbd56c987890cc9b2e760325e1 100644 --- a/roles/upgrade/tasks/main.yml +++ b/roles/upgrade/tasks/main.yml @@ -16,3 +16,32 @@ become: true become_user: root when: ansible_os_family=="RedHat" + +- name: get kernel-devel version + shell: rpm -q kernel-devel | cut -f 3,4 -d "-" + register: rpm_q_output + +- name: get kernel version + shell: uname -r + register: uname_r_output + +- name: default dont reboot + set_fact: reboot_now=False + +- name: set reboot when kernel has changed + set_fact: reboot_now=True + when: not rpm_q_output.stdout in uname_r_output.stdout + +- name: restart machine + shell: "sleep 5; sudo shutdown -r now" + async: 2 + poll: 1 + ignore_errors: true + sudo: true + when: reboot_now + +- name: waiting for server to come back + local_action: wait_for host={{ ansible_host }} state=started port=22 delay=30 timeout=600 search_regex=OpenSSH + sudo: false + when: reboot_now +