You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

48 lines
1.9 KiB

  1. ---
  2. - name: Join Member | Add member to etcd cluster # noqa 301 305
  3. shell: "{{ bin_dir }}/etcdctl member add {{ etcd_member_name }} --peer-urls={{ etcd_peer_url }}"
  4. register: member_add_result
  5. until: member_add_result.rc == 0 or 'Peer URLs already exists' in member_add_result.stderr
  6. failed_when: member_add_result.rc != 0 and 'Peer URLs already exists' not in member_add_result.stderr
  7. retries: "{{ etcd_retries }}"
  8. delay: "{{ retry_stagger | random + 3 }}"
  9. environment:
  10. ETCDCTL_API: 3
  11. ETCDCTL_CERT: "{{ etcd_cert_dir }}/admin-{{ inventory_hostname }}.pem"
  12. ETCDCTL_KEY: "{{ etcd_cert_dir }}/admin-{{ inventory_hostname }}-key.pem"
  13. ETCDCTL_CACERT: "{{ etcd_cert_dir }}/ca.pem"
  14. ETCDCTL_ENDPOINTS: "{{ etcd_access_addresses }}"
  15. - include_tasks: refresh_config.yml
  16. vars:
  17. etcd_peer_addresses: >-
  18. {% for host in groups['etcd'] -%}
  19. {%- if hostvars[host]['etcd_member_in_cluster'].rc == 0 -%}
  20. {{ "etcd"+loop.index|string }}=https://{{ hostvars[host].etcd_access_address | default(hostvars[host].ip | default(fallback_ips[host])) }}:2380,
  21. {%- endif -%}
  22. {%- if loop.last -%}
  23. {{ etcd_member_name }}={{ etcd_peer_url }}
  24. {%- endif -%}
  25. {%- endfor -%}
  26. - name: Join Member | Ensure member is in etcd cluster
  27. shell: "set -o pipefail && {{ bin_dir }}/etcdctl member list | grep {{ etcd_access_address }} >/dev/null"
  28. args:
  29. executable: /bin/bash
  30. register: etcd_member_in_cluster
  31. changed_when: false
  32. check_mode: no
  33. tags:
  34. - facts
  35. environment:
  36. ETCDCTL_API: 3
  37. ETCDCTL_CERT: "{{ etcd_cert_dir }}/admin-{{ inventory_hostname }}.pem"
  38. ETCDCTL_KEY: "{{ etcd_cert_dir }}/admin-{{ inventory_hostname }}-key.pem"
  39. ETCDCTL_CACERT: "{{ etcd_cert_dir }}/ca.pem"
  40. ETCDCTL_ENDPOINTS: "{{ etcd_access_addresses }}"
  41. - name: Configure | Ensure etcd is running
  42. service:
  43. name: etcd
  44. state: started
  45. enabled: yes