summaryrefslogtreecommitdiffstats
path: root/playbooks/openshift-master/private/validate_restart.yml
diff options
context:
space:
mode:
authorRussell Teague <rteague@redhat.com>2017-11-16 14:18:58 -0500
committerRussell Teague <rteague@redhat.com>2017-11-22 08:32:57 -0500
commit78f11c8f671015d40a630208b548d0790ec3a823 (patch)
tree59dc57f13d23edc34d86c76aaf3f758a2fec9718 /playbooks/openshift-master/private/validate_restart.yml
parent16e4acfe143e954c07c774c5c163fbd4ff1e4647 (diff)
downloadopenshift-78f11c8f671015d40a630208b548d0790ec3a823.tar.gz
openshift-78f11c8f671015d40a630208b548d0790ec3a823.tar.bz2
openshift-78f11c8f671015d40a630208b548d0790ec3a823.tar.xz
openshift-78f11c8f671015d40a630208b548d0790ec3a823.zip
Playbook Consolidation - openshift-master
Diffstat (limited to 'playbooks/openshift-master/private/validate_restart.yml')
-rw-r--r--playbooks/openshift-master/private/validate_restart.yml65
1 files changed, 65 insertions, 0 deletions
diff --git a/playbooks/openshift-master/private/validate_restart.yml b/playbooks/openshift-master/private/validate_restart.yml
new file mode 100644
index 000000000..5dbb21502
--- /dev/null
+++ b/playbooks/openshift-master/private/validate_restart.yml
@@ -0,0 +1,65 @@
+---
+- name: Validate configuration for rolling restart
+ hosts: oo_masters_to_config
+ roles:
+ - openshift_facts
+ tasks:
+ - fail:
+ msg: "openshift_rolling_restart_mode must be set to either 'services' or 'system'"
+ when: openshift_rolling_restart_mode is defined and openshift_rolling_restart_mode not in ["services", "system"]
+ - openshift_facts:
+ role: "{{ item.role }}"
+ local_facts: "{{ item.local_facts }}"
+ with_items:
+ - role: common
+ local_facts:
+ rolling_restart_mode: "{{ openshift_rolling_restart_mode | default('services') }}"
+ - role: master
+ local_facts:
+ cluster_method: "{{ openshift_master_cluster_method | default(None) }}"
+
+# Creating a temp file on localhost, we then check each system that will
+# be rebooted to see if that file exists, if so we know we're running
+# ansible on a machine that needs a reboot, and we need to error out.
+- name: Create temp file on localhost
+ hosts: localhost
+ connection: local
+ become: no
+ gather_facts: no
+ tasks:
+ - local_action: command mktemp
+ register: mktemp
+ changed_when: false
+
+- name: Check if temp file exists on any masters
+ hosts: oo_masters_to_config
+ tasks:
+ - stat: path="{{ hostvars.localhost.mktemp.stdout }}"
+ register: exists
+ changed_when: false
+
+- name: Cleanup temp file on localhost
+ hosts: localhost
+ connection: local
+ become: no
+ gather_facts: no
+ tasks:
+ - file: path="{{ hostvars.localhost.mktemp.stdout }}" state=absent
+ changed_when: false
+
+- name: Warn if restarting the system where ansible is running
+ hosts: oo_masters_to_config
+ tasks:
+ - pause:
+ prompt: >
+ Warning: Running playbook from a host that will be restarted!
+ Press CTRL+C and A to abort playbook execution. You may
+ continue by pressing ENTER but the playbook will stop
+ executing after this system has been restarted and services
+ must be verified manually. To only restart services, set
+ openshift_master_rolling_restart_mode=services in host
+ inventory and relaunch the playbook.
+ when: exists.stat.exists and openshift.common.rolling_restart_mode == 'system'
+ - set_fact:
+ current_host: "{{ exists.stat.exists }}"
+ when: openshift.common.rolling_restart_mode == 'system'