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:
all:
hosts:
host1:
host2:
host3:
vars:
backup_dir: /archive
nbde_setup: false
upgrade: trueC.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:
--- - import_playbook: tasks/backup.yml tags: backupfiles
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:
---
- 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