]> git.apps.os.sepia.ceph.com Git - ceph-ansible.git/commitdiff
mon: force peer addition
authorSébastien Han <seb@redhat.com>
Tue, 8 Jan 2019 17:36:14 +0000 (18:36 +0100)
committerGuillaume Abrioux <gabrioux@redhat.com>
Wed, 9 Jan 2019 12:15:52 +0000 (13:15 +0100)
Somewhat something changed with the introduction of msg2 and we have to
add each node as a peer so the monitors can form a quorum. This might be
due to our CI environment, although adding this is completly harmless
and solves monitors not being able to form quorum.

It seems that the initial monitor map wasn't containing the right
information about the peers (addresses like 0.0.0.0/0r1, for each rank.

Signed-off-by: Sébastien Han <seb@redhat.com>
roles/ceph-mon/tasks/ceph_keys.yml

index 3bc4f8f550f078036c53854961dd7af2204d0c48..e8d9fd5186aa1f1a64953442b43b991fed7af698 100644 (file)
@@ -1,4 +1,18 @@
 ---
+- name: wait for the monitor socket to exist
+  stat:
+    path: "/var/run/ceph/{{ cluster }}-mon.{{ monitor_name }}.asok"
+  register: socket
+  until: socket.stat.exists
+
+- name: add bootstrap peers for monitors to form quorum
+  command: "{{ docker_exec_cmd }} ceph --admin-daemon /var/run/ceph/{{ cluster }}-mon.{{ monitor_name }}.asok add_bootstrap_peer_hint {{ hostvars[item.1]['_current_monitor_address'] }}:{{ item.0 }}"
+  with_nested:
+    - 3300
+    - "{{ groups[mon_group_name] }}"
+  changed_when: false
+  failed_when: false
+
 - name: waiting for the monitor(s) to form the quorum...
   command: >
     {{ docker_exec_cmd }}