--- - name: check for etcd existed stat: path: "{{ etcd_dir }}/etcd" ignore_errors: yes register: etcdexisted - name: download etcd get_url: url={{ etcd_download_url }} dest=/opt/{{ etcd_tarball }} when: - etcdexisted.stat.exists is undefined or etcdexisted.stat.exists == false - name: extract the etcd tarball unarchive: src=/opt/{{ etcd_tarball }} dest=/opt/ when: - etcdexisted.stat.exists is undefined or etcdexisted.stat.exists == false - name: Check if etcd is running shell: ps aux | grep etcd | grep -v grep ignore_errors: true register: service_etcd_status - name: run etcd daemon service shell: nohup ./etcd --advertise-client-urls http://{{ etcd_host }}:{{ etcd_port }} --listen-client-urls http://{{ etcd_host }}:{{ etcd_port }} -advertise-client-urls http://{{ etcd_host }}:{{ etcd_peer_port }} -listen-peer-urls http://{{ etcd_host }}:{{ etcd_peer_port }} &>>etcd.log & become: true args: chdir: "{{ etcd_dir }}" when: service_etcd_status.rc != 0 - name: check etcd cluster health shell: ./etcdctl cluster-health become: true ignore_errors: true args: chdir: "{{ etcd_dir }}"