Files
provisioning/ansible-5/roles/glusterfs/tasks/recover_nodes.yaml

82 lines
2.0 KiB
YAML

---
# ensure that the underlying config is correct
- name: fetch details
block:
- name: get old node UUID
ansible.builtin.shell: |
gluster pool list | grep {{ new_node }} | awk '{print $1}'
register: old_node_uuid
changed_when: false
- debug:
var: "old_node_uuid.stdout"
when: old_node_uuid is defined
become: true
when: inventory_hostname != new_node.name
- name: update new node
block:
- name: stop glusterd
ansible.builtin.service:
name: "{{ glusterfs_daemon }}"
state: stopped
changed_when: false
- name: update glusterd.info
ansible.builtin.lineinfile:
path: /var/lib/glusterd/glusterd.info
regexp: '^UUID='
line: 'UUID={{ new_node.uuid }}'
- name: start glusterd
ansible.builtin.service:
name: "{{ glusterfs_daemon }}"
state: started
changed_when: false
- name: add cluster nodes to new node
ansible.builtin.shell: "gluster peer probe {{ item }}"
register: peer_probe_result
with_items: cluster
changed_when:
- "'already in peer list' not in peer_probe_result.stdout"
- "'peer probe: success' in peer_probe_result.stdout"
failed_when: false
- name: reset systemctl restart count
ansible.builtin.shell: "systemctl reset-failed {{ glusterfs_daemon }}"
changed_when: false
- name: retart glusterd
ansible.builtin.service:
name: "{{ glusterfs_daemon }}"
state: restarted
changed_when: false
# - name: add volumes
# ansible.builtin.shell: "gluster --mode=script volume sync {{ cluster[0] }} tmp"
# register: sync_result
# failed_when: "'volume sync: success' not in sync_result"
become: true
when: inventory_hostname == new_node.name
- name: create tmp gluster volume
gluster_volume:
state: present
start_on_create: yes
name: "tmp"
brick: '/data/glusterfs/tmp/brick1'
rebalance: no
replicas: 2
force: true
cluster:
- home
- cubox-i
run_once: true