Last active
January 23, 2018 22:39
-
-
Save miticojo/81dbcab9bd47b958a1507902fbd8abad to your computer and use it in GitHub Desktop.
Openshift Node OS Rolling Update
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| - hosts: nodes | |
| serial: "20%" | |
| tasks: | |
| - name: make node unschedulable | |
| command: oc adm manage-node {{inventory_hostname}} --schedulable=false | |
| delegate_to: "{{groups.masters.0}}" | |
| retries: 10 | |
| delay: 5 | |
| register: node_schedulable_result | |
| until: node_schedulable_result|succeeded | |
| - name: drain node from OCP cluster | |
| command: oc adm drain {{inventory_hostname}} --force --ignore-daemonsets=true | |
| register: node_drain_result | |
| failed_when: | |
| - not (node_drain_result.stdout.find('already') != -1) | |
| - node_drain_result.rc != 0 | |
| delegate_to: "{{groups.masters.0}}" | |
| - name: update os | |
| yum: | |
| name: "*" | |
| state: latest | |
| update_cache: yes | |
| - name: Check for reboot hint. | |
| 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: Restart master system | |
| shell: sleep 2 && shutdown -r now "Machine restart after update" | |
| when: reboot_hint.stdout.find("reboot") != -1 | |
| register: rebooting | |
| async: 1 | |
| poll: 0 | |
| ignore_errors: true | |
| become: yes | |
| - set_fact: | |
| wait_for_host: "{{ ansible_host }}" | |
| - name: Wait for master to restart | |
| local_action: | |
| module: wait_for | |
| host="{{ wait_for_host }}" | |
| state=started | |
| delay=10 | |
| timeout=600 | |
| port="{{ ansible_port | default(ansible_ssh_port | default(22,boolean=True),boolean=True) }}" | |
| become: no | |
| when: rebooting|changed | |
| - name: make node schedulable again | |
| command: oc adm manage-node {{inventory_hostname}} --schedulable=true | |
| delegate_to: "{{groups.masters.0}}" | |
| retries: 10 | |
| delay: 5 | |
| register: node_schedulable_result | |
| until: node_schedulable_result|succeeded |
Author
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
latest ver moved here: https://github.com/miticojo/openshift-utils