09847567ae
"shell" step doesn't support check mode, which currently leads to failures, when Ansible is being run in check mode (because Ansible doesn't run command, assuming that command might have effect, and no "rc" or "output" is registered). Setting "check_mode: no" allows to run those "shell" commands in check mode (which is safe, because those shell commands doesn't have side effects).
21 lines
819 B
YAML
21 lines
819 B
YAML
---
|
|
- name: Configure | Check if member is in cluster
|
|
shell: "{{ bin_dir }}/etcdctl --no-sync --peers={{ etcd_access_addresses }} member list | grep -q {{ etcd_access_address }}"
|
|
register: etcd_member_in_cluster
|
|
failed_when: false
|
|
changed_when: false
|
|
check_mode: no
|
|
when: is_etcd_master
|
|
tags: facts
|
|
|
|
- name: Configure | Add member to the cluster if it is not there
|
|
when: is_etcd_master and etcd_member_in_cluster.rc != 0 and etcd_cluster_is_healthy.rc == 0
|
|
shell: "{{ bin_dir }}/etcdctl --peers={{ etcd_access_addresses }} member add {{ etcd_member_name }} {{ etcd_peer_url }}"
|
|
|
|
- name: Configure | Copy etcd.service systemd file
|
|
template:
|
|
src: "etcd-{{ etcd_deployment_type }}.service.j2"
|
|
dest: /etc/systemd/system/etcd.service
|
|
backup: yes
|
|
when: is_etcd_master
|
|
notify: restart etcd
|