--- - name: Check cluster health command: > etcdctl --cert-file /etc/etcd/peer.crt --key-file /etc/etcd/peer.key --ca-file /etc/etcd/ca.crt --endpoint https://{{ etcd_peer }}:2379 cluster-health register: etcd_cluster_health changed_when: false failed_when: false - name: Assume a member is not healthy set_fact: etcd_member_healthy: false - name: Get member item health status set_fact: etcd_member_healthy: true with_items: "{{ etcd_cluster_health.stdout_lines }}" when: "(etcd_peer in item) and ('is healthy' in item)" - name: Check the etcd cluster health # TODO(jchaloup): should we fail or ask user if he wants to continue? Or just wait until the cluster is healthy? fail: msg: "Etcd member {{ etcd_peer }} is not healthy" when: not etcd_member_healthy