Browse Source

Stagger the start of master services.

Andrew Butcher 8 years ago
parent
commit
2c6c76ec4c

+ 1 - 0
playbooks/common/openshift-master/config.yml

@@ -258,6 +258,7 @@
                                     | oo_select_keys(groups['oo_masters_to_config'] | default([]))
                                     | oo_collect('openshift.common.all_hostnames')
                                     | oo_flatten | unique }}"
+    openshift_master_hosts: "{{ groups.oo_masters_to_config }}"
   - role: nickhammond.logrotate
   - role: nuage_master
     when: openshift.common.use_nuage | bool

+ 38 - 5
roles/openshift_master/tasks/main.yml

@@ -180,7 +180,10 @@
   changed_when: false
 
 - name: Stop and disable non-HA master when running HA
-  service: name={{ openshift.common.service_type }}-master enabled=no state=stopped
+  service:
+    name: "{{ openshift.common.service_type }}-master"
+    enabled: no
+    state: stopped
   when: openshift_master_ha | bool and 'LoadState=not-found' not in master_svc_show.stdout
 
 - set_fact:
@@ -191,9 +194,24 @@
   command: systemctl mask {{ openshift.common.service_type }}-master
   when: openshift_master_ha | bool and openshift.master.cluster_method == 'native' and not openshift.common.is_containerized | bool
 
-- name: Start and enable master api
-  service: name={{ openshift.common.service_type }}-master-api enabled=yes state=started
+- name: Start and enable master api on first master
+  service:
+    name: "{{ openshift.common.service_type }}-master-api"
+    enabled: yes
+    state: started
+  when: openshift_master_ha | bool and openshift.master.cluster_method == 'native' and inventory_hostname == openshift_master_hosts[0]
+  register: start_result
+
+- pause:
+    seconds: 15
   when: openshift_master_ha | bool and openshift.master.cluster_method == 'native'
+
+- name: Start and enable master api all masters
+  service:
+    name: "{{ openshift.common.service_type }}-master-api"
+    enabled: yes
+    state: started
+  when: openshift_master_ha | bool and openshift.master.cluster_method == 'native' and inventory_hostname != openshift_master_hosts[0]
   register: start_result
 
 - set_fact:
@@ -216,9 +234,24 @@
   changed_when: false
   when: openshift_master_ha | bool and openshift.master.cluster_method == 'native' and master_api_service_status_changed | bool
 
-- name: Start and enable master controller
-  service: name={{ openshift.common.service_type }}-master-controllers enabled=yes state=started
+- name: Start and enable master controller on first master
+  service:
+    name: "{{ openshift.common.service_type }}-master-controllers"
+    enabled: yes
+    state: started
+  when: openshift_master_ha | bool and openshift.master.cluster_method == 'native' and inventory_hostname == openshift_master_hosts[0]
+  register: start_result
+
+- pause:
+    seconds: 15
   when: openshift_master_ha | bool and openshift.master.cluster_method == 'native'
+
+- name: Start and enable master controller on all masters
+  service:
+    name: "{{ openshift.common.service_type }}-master-controllers"
+    enabled: yes
+    state: started
+  when: openshift_master_ha | bool and openshift.master.cluster_method == 'native' and inventory_hostname != openshift_master_hosts[0]
   register: start_result
 
 - set_fact: