--- - name: get kernel version shell: uname -r register: uname_r_output check_mode: no changed_when: False - name: remove conflicting packages if kernel is going to changed block: - name: see if we have a lustre-client service or not shell: systemctl status lustre-client register: lustreStatus changed_when: False failed_when: '"could not" in lustreStatus.stderr' ignore_errors: yes - name: stop lustre service: name=lustre-client state=stopped become: true when: not lustreStatus.failed - name: remove conflicting packages if kernel is going to changed package: state: absent name: - kmod-lustre-client - kernel-devel become: true - name: remove mellanox packages package: state: absent name: - mlnx-ofa_kernel - mlnx-ofa_kernel-devel - mlnx-ofa_kernel-modules - libibverbs - libgpod - usbmuxd - libmlx5 - libmlx4 - nvidia-kmod become: true when: uname_r_output.stdout != KERNEL_VERSION - name: install aptitude apt: name=aptitude state=present become: true become_user: root when: ansible_os_family=="Debian" #- name: apt-get upgrade # apt: upgrade=safe # become: true # when: ansible_os_family=="Debian" - name: yum remove yum: name: - ipa-client-common - kmod-kvdo # found on some older monarch nodes - iwl*firmware # intel wireless Lan state: absent become: true become_user: root when: ansible_os_family=="RedHat" - name: yum upgrade yum: name: '*' state: latest update_cache: yes exclude: kernel*,mlnx-ofa_kernel*,kmod-lustre-client*,kmod-mlnx-ofa_kernel*,kmod-lustre-client*,lustre-client*,centos-release*,glusterfs*,redhat-release-server become: true become_user: root when: (( inventory_hostname in groups.ManagementNodes ) or ( inventory_hostname in groups.SQLNodes )) and ansible_os_family=="RedHat" - name: yum upgrade yum: name: '*' state: latest update_cache: yes exclude: kernel*,mlnx-ofa_kernel*,kmod-lustre-client*,kmod-mlnx-ofa_kernel*,kmod-lustre-client*,lustre-client*,centos-release*,redhat-release-server become: true become_user: root when: ( inventory_hostname not in groups.ManagementNodes ) and ( inventory_hostname not in groups.SQLNodes ) and ansible_os_family=="RedHat" - name: Clear yum pending transaction command: yum-complete-transaction --cleanup-only become: true become_user: root when: ansible_os_family=="RedHat" register: yumtransactioncleanup changed_when: '"No unfinished transactions left." not in yumtransactioncleanup.stdout' - name: install centos-release yum: name: - centos-release-{{ CENTOS_VERSION }} state: present allow_downgrade: true become: true when: - ansible_os_family=="RedHat" - '"DGX" not in ansible_product_name' - name: install redhat-release-server yum: name: - redhat-release-server-{{ RHEL_VERSION }} state: present allow_downgrade: true when: - '"DGX" in ansible_product_name' - '"RedHat" in ansible_distribution' become: true become_user: root - name: install kernel-devel yum: name: - kernel-devel-{{ KERNEL_VERSION }} - kernel-{{ KERNEL_VERSION }} - kernel-headers-{{ KERNEL_VERSION }} - kernel-tools-{{ KERNEL_VERSION }} - kernel-tools-libs-{{ KERNEL_VERSION }} state: present allow_downgrade: true become: true when: ansible_os_family=="RedHat" - name: get kernel-devel version shell: rpm -q kernel-devel | cut -f 3,4 -d "-" | sort | tail -n 1 register: rpm_q_output when: ansible_os_family=="RedHat" check_mode: no changed_when: False args: warn: False - name: get kernel-devel version shell: dpkg -l linux-image* | grep "^ii" | grep "linux-image-[0-9]" | sed 's/\ \ */ /g' | cut -f 2 -d " " | cut -f 3-5 -d "-" register: dpkg_l_output when: ansible_os_family=="Debian" check_mode: no changed_when: False - name: get kernel version shell: uname -r register: uname_r_output check_mode: no changed_when: False - name: default dont reboot set_fact: reboot_now: false - name: debug1 debug: var=rpm_q_output - name: debug2 debug: var=uname_r_output - name: set reboot when kernel has changed set_fact: reboot_now: true when: ansible_os_family=="RedHat" and not uname_r_output.stdout in rpm_q_output.stdout - name: set reboot when kernel has changed set_fact: reboot_now: true when: ansible_os_family=="Debian" and not uname_r_output.stdout in dpkg_l_output.stdout - name: debug3 debug: var=reboot_now - name: restart machine reboot: become: true when: reboot_now