[cinil@patchmanager ansible_playbooks]$ cat osupdate-preparation.yml
---
- name: Osupdate
hosts: all
become: yes
become_user: root
tasks:
- name: taking backup of important files.
shell: mkdir /var/tmp/security_patching_bkp;cd /var/tmp/security_patching_bkp;df -h>df.txt;ifconfig -a>ifconfig.txt;uname -a>uname.txt;ps -eaf>ps.txt
register: result
- name: Clean yum
shell: yum clean all
register: yumclean
- name: yum list security
shell: yum list-security > /var/tmp/security_patching_bkp/yum_list-security.txt
register: yumlist_security
- name: Yum security update
shell: yum update --security -y
register: yumsecurityupdate
- name: Yum security update skip-broken
shell: yum update --security -y --skip-broken
register: yumsecurityupdateskipb
- name: Count the boot files before reboot
shell: cd /boot/;ls |grep `rpm -q --last kernel | awk 'NR==1{sub(/kernel-/,"");print $1}'`|wc -l
register: countbootfiles
- fail:
msg: "Kernel update failed"
when: countbootfiles.stdout != "5"
[cinil@patchmanager ansible_playbooks]$
[cinil@patchmanager ansible_playbooks]$ cat Osupdate-Reboot.yml
---
- name: Os-Security update Server reboot
hosts: all
become: yes
become_user: root
tasks:
- name: Count the boot files before reboot
shell: cd /boot/;ls |grep `rpm -q --last kernel | awk 'NR==1{sub(/kernel-/,"");print $1}'`|wc -l
register: countbootfiles
- name: Checking reboot required or not
shell: LAST_KERNEL=$(rpm -q --last kernel | awk 'NR==1{sub(/kernel-/,""); print $1}'); CURRENT_KERNEL=$(uname -r); if [ $LAST_KERNEL != $CURRENT_KERNEL ]; then echo 'reboot'; else echo 'no'; fi
ignore_errors: true
register: reboot_hint
- name: Rebooting if required...
shell: ahutdown -r now "Reboot required for updated kernel"
async: 0
poll: 0
when: reboot_hint.stdout.find("reboot") != -1 and countbootfiles.stdout.find("5") != -1
register: rebooting
- name: Waiting for thing to reboot
pause: seconds=180
when: rebooting|changed
- fail:
msg: "Server not rebooted due to Kernel update fail or wrong reboot"
when: reboot_hint.stdout.find("reboot") == -1 or countbootfiles.stdout.find("5") == -1
[cinil@patchmanager ansible_playbooks]$