diff --git a/nomad/recover-nomad.yaml b/nomad/recover-nomad.yaml new file mode 100644 index 0000000..d9b41e1 --- /dev/null +++ b/nomad/recover-nomad.yaml @@ -0,0 +1,45 @@ +--- +- name: Recovery Nomad + hosts: nomad_instances + + tasks: + - name: Stop Nomad + systemd: + name: nomad + state: stopped + become: true + + - name: Get node-id + slurp: + src: /var/nomad/server/node-id + register: nomad_node_id + become: true + + - name: Node Id + debug: + msg: "node_id: {{ nomad_node_id.content }}" + + - name: Address + debug: + msg: "address: {{ ansible_default_ipv4.address }}" + + - name: Save + copy: + dest: /var/nomad/server/raft/peers.json + content: | + [ + {% for host in ansible_play_hosts|reject('equalto', inventory_hostname) -%} + { + "id": "{{ hostvars[host].nomad_node_id.content }}", + "address": "{{ hostvars[host].ansible_default_ipv4.address }}:4647", + "non_voter": false + }{% if not loop.last %},{% endif %} + {% endfor -%} + ] + become: true + + - name: Restart Nomad + systemd: + name: nomad + state: restarted + become: true