blob: 188498e5cbbf2cdf4aa8ae3af4a388fe0b5a7487 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
---
- name: List the etcd members
vars:
service_name: "etcd"
service: "{{ etcd_services[service_name] }}"
become: true
command: >-
{{ kolla_container_engine }} exec {{ service.container_name }}
etcdctl member list
changed_when: false
run_once: true
delegate_to: "{{ etcd_cluster_leader | default(groups[service.group][0]) }}"
register: etcd_member_list_result
- name: Remove deleted members from the etcd cluster
vars:
service_name: "etcd"
service: "{{ etcd_services[service_name] }}"
etcd_members_from_inventory: >-
{{ groups['etcd']
| map('extract', hostvars, 'ansible_facts')
| map(attribute='hostname')
| list }}
etcd_deleted_members: >-
{{ etcd_member_list_result.stdout | from_json
| json_query('members[].name')
| difference(etcd_members_from_inventory) }}
etcd_member_id: >-
{{ etcd_member_list_result.stdout | from_json
| json_query('members[].{key: name, value: ID}') | items2dict }}
become: true
command: >-
{{ kolla_container_engine }} exec {{ service.container_name }}
etcdctl member remove {{ '%x' % etcd_member_id[etcd_deleted_member] }}
run_once: true
delegate_to: "{{ etcd_cluster_leader | default(groups[service.group][0]) }}"
loop: "{{ etcd_deleted_members }}"
loop_control:
loop_var: etcd_deleted_member
|