Closes-bug: 2090922 Change-Id: Ib54c4065e5c59088807e97c028099691df652f45 Signed-off-by: Suzana Fernandes <Suzana.Fernandes@windriver.com>
11 KiB
Run Restore Playbook Locally on the Controller
To run restore on the controller, you need to upload the backup to the active controller.
You can use an external storage device, for example, a USB drive. Use the following commands to run the Ansible Restore playbook:
Optimized: Optmized restore must be used on .
~(keystone_admin)]$ ansible-playbook /usr/share/ansible/stx-ansible/playbooks/restore_platform.yml -e "restore_mode=optimized initial_backup_dir=<location_of_tarball ansible_become_pass=<admin_password> admin_password=<admin_password backup_filename=<backup_filename> wipe_ceph_osds=<true/false> restore_registry_filesystem=true ssl_ca_certificate_file=<complete path>/<ssl_ca certificates file>"
Legacy: Legacy restore must be used on systems that are not .
~(keystone_admin)]$ ansible-playbook /usr/share/ansible/stx-ansible/playbooks/restore_platform.yml -e "initial_backup_dir=<location_of_tarball ansible_become_pass=<admin_password> admin_password=<admin_password backup_filename=<backup_filename> wipe_ceph_osds=<true/false> ssl_ca_certificate_file=<complete path>/<ssl_ca certificates file>"
Note
If there are any expired ssl_ca certificates in the
backup, the restore (both, legacy and optimized) filters out the expired
certificates and restores only the valid ones.
Below you can find other -e command line options:
Common
-e restore_mode=optimized-
Enable optimized restore mode
Note
Optimized restore is currently supported only on systems.
-e "initial_backup_dir=/home/sysadmin"-
Where the backup tgz files are located on box.
-e backup_filename=localhost_platform_backup.tgz-
The basename of the platform backup tgz. The full path will be a combination
{initial_backup_dir}/{backup_filename} -e backup_encryption_enabled=false-
If
backup encryptionis selected during platform backup, then this option is also required when you run the platform restore procedure. Select this option if the platform backup archive file includes the '.gpg' extension. -e backup_encryption_passphrase=<encryption_password>-
When
backup_encryption_enabledis set to true, then thebackup_encryption_passphraseoption is also required. Consider using ansible-vault to store and specify passwords. -e exclude_sw_deployments={true,false}-
Setting this to true causes the restore to skip any restoring of software deployments. By default, this is true for and subclouds and false for systems (except subclouds). Software deployments can only be restored using
exclude_sw_deployments=falseduring backup. -e verify_base_commit={true,false}-
When restoring software deployments, the base commit will be checked to ensure that the restore is being done with the original ISO. Set this to false to ignore the base commit.
(Optional): You can select one of the following restore modes:
To keep the Ceph cluster data intact (false - default option), use the following parameter, when passing the extra arguments to the Ansible Restore playbook command:
wipe_ceph_osds=falseTo wipe the Ceph cluster entirely (true), where the Ceph cluster will need to be recreated, or if the Ceph partition was previously wiped, such as during a fresh install between backup and restore or during reinstall, use the following parameter:
wipe_ceph_osds=trueTo define a convenient place to store the backup files, defined by
initial-backup_dir, on the system (such as the home folder for sysadmin, or /tmp, or even a mounted USB device), use theon_box_data=true/falseparameter.If this parameter is set to true, Ansible Restore playbook will look for the backup file provided on the target server. The parameter
initial_backup_dircan be ommited from the command line. In this case, the backup file will be under/opt/platform-backupdirectory.If this parameter is set to false, the Ansible Restore playbook will look for backup file provided on the Ansible controller. In this case, both the
initial_backup_dirandbackup_filenamemust be specified in the command.Example of a backup file in
/home/sysadmin:~(keystone_admin)]$ ansible-playbook /usr/share/ansible/stx-ansible/playbooks/restore_platform.yml -e "initial_backup_dir=/home/sysadmin ansible_become_pass=St8rlingXCloud* admin_password=St8rlingXCloud* backup_filename=localhost_platform_backup_2020_07_27_07_48_48.tgz wipe_ceph_osds=true"Note
If the backup contains patches and
exclude_sw_deployments=falseis used, Ansible Restore playbook will apply the patches and automatically reboot the system if required. Then you will need to re-run Ansible Restore playbook.The flag
wipe_ceph_osds=trueis required for a restore in a new hardware. For more details, seenode-replacement-for-aiominussx-using-optimized-backup-and-restore-6603c650c80d.ssl_ca_certificate_filedefines a single certificate or a bundle that contains all thessl_cacertificates that will be installed during the restore.Note
The
ssl_cacertificates are not automatically renewed, you MUST renew the soon-to-expire certificates before the backup operation. The expiredssl_cacertificates are not restored. For more details, seeRecommended Backup and Retention Policies<recommended-backup-and-retention-policies>.For example:
ssl_ca_certificate_file=<complete path>/<ssl_ca certificates file> E.g.: -e "ssl_ca_certificate_file=/home/sysadmin/new_ca-cert.pem"Note
In legacy restore, when this option is used, it replaces all
ssl_cacertificates in the backup {{ with the one specified inssl_ca_certificate_file.In the optimized restore, when this option is used, it adds certificates from
ssl_ca_certificate_fileto the existingssl_cacertificates in the backup” }}.This parameter depends on
on_box_datavalue.When
on_box_data=trueor not defined,ssl_ca_certificate_filewill be the location of thessl_cacertificate file on the target host. This is the default case.When
on_box_data=false,ssl_ca_certificate_filewill be the location of thessl_cacertificate file where the Ansible controller is running. This is useful for remote play.Note
To use this option on local restore mode, you need to download the
ssl_cacertificate file to the active controller.The backup contains the bootstrap override values (
localhost.yml) from the time of the backup; for example the registry credentials. There may be scenarios where you need to change these values during the restore.You can choose from the two options of overrides below:
restore_overridesused to override parts of thelocalhost.ymlfound in backup. By default, entire sections will be modified.For example:
To override entire docker registry section:
Create file
restore_overrides.yaml.--- restore_overrides: docker_registries: defaults: type: docker username: admin password: Hello123! docker.elastic.co: url: example.com/stx/docker.elastic.co docker.io: url: example.com/stx/docker.io gcr.io: url: example.com/stx/gcr.io ghcr.io: url: example.com/stx/ghcr.io icr.io: url: example.com/stx/icr.io k8s.gcr.io: url: example.com/stx/k8s.gcr.io quay.io: url: example.com/stx/quay.io registry.k8s.io: url: example.com/stx/registry.k8s.ioRun restore.
nsible-playbook restore_platform.yml \ -e restore_mode=optimized \ -e "@/path/to/restore_overrides.yaml"
restore_overrides_recursiveused to override specific fields as opposed to entire sections.An example is to override only the registry password without changing any of the other values as opposed to the previous example.
To override only password:
Create file
restore_overrides.yaml.--- restore_overrides_recursive: true restore_overrides: docker_registries: defaults: password: Hello123!Run restore.
ansible-playbook restore_platform.yml \ -e restore_mode=optimized \ -e "@/path/to/restore_overrides.yaml"
-e restore_extra_items-
Enables the restore playbook to extract additional items from the backup during its execution. This is useful when the user has unmanaged files that are not included in a normal restore operation.
The following is an example of restoring some files that had been manually modified on the system pre-backup:
ansible-playbook /usr/share/ansible/stx-ansible/playbooks/restore_platform.yml \ -e "initial_backup_dir=/home/sysadmin" \ -e "backup_filename=localhost_platform_backup_2024_08_12_22_58_21.tgz" -e '{"restore_extra_items": ["etc/pam.d/common-auth", "etc/security/group.conf"]}'Note
The
restore_extra_itemsoption will restore files only on controller-0. The user must restore files on other nodes after they are reinstalled, if required.
Legacy
-e restore_user_images=true-
Restores the user images created during backup when
backup_user_imageswas true. If the user images are not restored, the images must be pulled from upstream orregistry.central.
Optimized
-e restore_registry_filesystem=true-
Restores the registry images created during backup when
backup_registry_filesystemwas true. If the registry filesystem is not restored the images must be pulled from upstream or registry.central. -e registry_backup_filename=custom_name_registry_filesystem_backup.tgz-
By default this override is not required. When
restore_registry_filesystemis true and a custom name was used during backup,registry_backup_filenameneeds to be set to match. The full path will be a combination{initial_backup_dir}/{registry_backup_filename}
Note
After restore is completed it is not possible to restart (or rerun) the restore playbook.