maker rabbitmq playbook reentrant 07/10907/4
authorcarey.xu <carey.xuhan@huawei.com>
Tue, 1 Mar 2016 08:44:00 +0000 (16:44 +0800)
committercarey.xu <carey.xuhan@huawei.com>
Wed, 9 Mar 2016 03:07:13 +0000 (11:07 +0800)
JIRA: COMPASS-328

Change-Id: Ia859db4f995ffac4cf01ab74da17f51c5d84dd1f
Signed-off-by: carey.xu <carey.xuhan@huawei.com>
deploy/adapters/ansible/roles/mq/tasks/rabbitmq_cluster.yml
deploy/adapters/ansible/roles/mq/tasks/rabbitmq_install.yml

index a84cbed..50c062f 100644 (file)
@@ -7,15 +7,30 @@
 # http://www.apache.org/licenses/LICENSE-2.0
 ##############################################################################
 ---
+- name: check if i in the node list
+  shell: |
+    rabbitmqctl -q cluster_status | grep '\[{nodes,'|grep {{ inventory_hostname }}
+  changed_when: is_member.rc != 0
+  failed_when: false
+  register: is_member
+  delegate_to: '{{ haproxy_hosts.keys()[0] }}'
+
 - name: stop rabbitmq app
-  shell: rabbitmqctl stop_app; sleep 3
+  shell: |
+    rabbitmqctl stop_app; sleep 5
+  failed_when: false
+  when: is_member.rc != 0
 
 - name: join cluster
   shell: rabbitmqctl join_cluster rabbit@{{ haproxy_hosts.keys()[0] }}
   register: join_result
+  when: is_member.rc != 0
   until: join_result|success
+  failed_when: join_result|failed and not 'already_member' in join_result.stderr
+  changed_when: join_result|success
   retries: 20
   delay: 3
 
 - name: start rabbitmq app
   shell: rabbitmqctl start_app
+  when: is_member.rc != 0
index 067e240..1c8c2fe 100755 (executable)
     pattern: '^(?!amq\.).*'
     tags: "ha-mode=all"
 
+- name: get cluster name
+  shell: |
+    rabbitmqctl cluster_status | grep -w '<<"compass">>'
+  register: cluster_status
+  failed_when: false
+  changed_when: cluster_status.rc != 0
+  when: |
+     inventory_hostname == haproxy_hosts.keys()[0]
+
+- name: set cluster name
+  shell: rabbitmqctl set_cluster_name compass
+  when: |
+     inventory_hostname == haproxy_hosts.keys()[0]
+     and cluster_status.rc != 0
+
 - include: rabbitmq_cluster.yml
   when: inventory_hostname != haproxy_hosts.keys()[0]