Appendix C. Understanding the archive_config_inventory.yml file The archive_config_inventory.yml file is an example Ansible inventory file that you can use to backup and restore the configurations of Red Hat Hyperconverged Infrastructure for Virtualization cluster. You can find this file at /etc/ansible/roles/gluster.ansible/playbooks/hc-ansible-deployment/archive_config_inventory.yml on any hyperconverged host. There are 2 playbooks archive_config.yml and backup.yml . The archive_config.yml is a wrapper playbook, that in turn imports tasks/backup.yml . C.1. Configuration parameters for backup and restore in archive_config_inventory.yml hosts The backend FQDN of each host in the cluster that you want to back up. backup_dir The directory in which to store backup files. nbde_setup Upgrade does not support setting of NBDE, set to false. upgrade Set to true. For example: C.2. Creating the archive_config.yml playbook file Create the archive_config.yml playbook file only if it is not available at the location /etc/ansible/roles/gluster.ansible/playbooks/hc-ansible-deployment Add the following content to archive_config.yml file: C.3. Creating the tasks/backup.yml playbook file Create the tasks/backup.yml playbook file only if it is not available at the location /etc/ansible/roles/gluster.ansible/playbooks/hc-ansible-deployment Add the following content to the backup.yml file:

Commands:
all: hosts: host1: host2: host3: vars: backup_dir: /archive nbde_setup: false upgrade: true
--- - import_playbook: tasks/backup.yml tags: backupfiles
--- - hosts: all tasks: - name: Check if backup dir is already available stat: path: "{{ backup_dir }}" register: result - fail: msg: Backup directory "{{backup_dir}}" exists, remove it and retry when: result.stat.isdir is defined - name: Create temporary backup directory file: path: "{{ backup_dir }}" state: directory - name: Get the hostname shell: uname -n register: hostname - name: Add hostname details to archive shell: echo {{ hostname.stdout }} > {{ backup_dir }}/hostname - name: Dump the IP configuration details shell: ip addr show > {{ backup_dir }}/ipconfig - name: Dump the IPv4 routing information shell: ip route > {{ backup_dir }}/ip4route - name: Dump the IPv6 routing information shell: ip -6 route > {{ backup_dir }}/ip6route - name: Get the disk layout information shell: lsblk > {{ backup_dir }}/lsblk - name: Get the mount information for reference shell: df -Th > {{ backup_dir }}/mount - name: Check for VDO configuration stat: path: /etc/vdoconf.yml register: vdoconfstat - name: Copy VDO configuration, if available shell: cp -a /etc/vdoconf.yml "{{backup_dir}}" when: vdoconfstat.stat.isreg is defined - name: Backup fstab shell: cp -a /etc/fstab "{{backup_dir}}" - name: Backup glusterd config directory shell: cp -a /var/lib/glusterd "{{backup_dir}}" - name: Backup /etc/crypttab, if NBDE is enabled shell: cp -a /etc/crypttab "{{ backup_dir }}" when: nbde_setup is defined and nbde_setup - name: Backup keyfiles used for LUKS decryption shell: cp -a /etc/sd*keyfile "{{ backup_dir }}" when: nbde_setup is defined and nbde_setup - name: Check for the inventory file generated from cockpit stat: path: /etc/ansible/hc_wizard_inventory.yml register: inventory - name: Copy the host inventory file generated from cockpit shell: cp /etc/ansible/hc_wizard_inventory.yml {{ backup_dir }} when: inventory.stat.isreg is defined - name: Create a tar.gz with all the contents archive: path: "{{ backup_dir }}/*" dest: /root/rhvh-node-{{ hostname.stdout }}-backup.tar.gz