diff --git a/roles/remove-node/remove-etcd-node/tasks/main.yml b/roles/remove-node/remove-etcd-node/tasks/main.yml index 2b8fc24cd..7a99641a6 100644 --- a/roles/remove-node/remove-etcd-node/tasks/main.yml +++ b/roles/remove-node/remove-etcd-node/tasks/main.yml @@ -21,6 +21,10 @@ - "{{ bin_dir }}/etcdctl" - member - remove - - "{{ '%x' | format(((etcd_members.stdout | from_json).members | selectattr('peerURLs.0', '==', etcd_peer_url))[0].ID) }}" + - "{{ '%x' | format(etcd_removed_nodes[0].ID) }}" + vars: + etcd_removed_nodes: "{{ (etcd_members.stdout | from_json).members | selectattr('peerURLs.0', '==', etcd_peer_url) }}" + # This should always have at most one member, since the etcd_peer_url should be unique in the etcd cluster + when: etcd_removed_nodes != [] register: etcd_removal_output changed_when: "'Removed member' in etcd_removal_output.stdout"