Плейбуки
Для принудительного создания резервной копии Gitlab выполните следующую команду:
$ ansible-playbook -i YOUR_INVENTORY_HERE --vault-id YOUR_VAULT_HERE playbooks/maintenance/gitlab-backup.yaml
Резервные копии Gitlab именуются в S3 с временной меткой и версией Gitlab.
Дополнительную информацию можно найти в официальной документации Gitlab.
Для восстановления Gitlab из S3 необходимо указать значение переменной gitlab_restore_timestamp в формате YYYY-MM-DD_GITLABVERSION.
gitlab_restore_timestamp="1700644874_2023_11_22_16.5.0-ee"
Для запуска плейбука для восстановления Gitlab выполните следующую команду:
$ ansible-playbook -i YOUR_INVENTORY_HERE --vault-id YOUR_VAULT_HERE playbooks/maintenance/gitlab-restore.yaml -e gitlab_restore_timestamp="1700644874_2023_11_22_16.5.0-ee"
Для принудительного создания резервной копии Keycloak выполните следующую команду:
$ ansible-playbook -i YOUR_INVENTORY_HERE --vault-id YOUR_VAULT_HERE playbooks/maintenance/keycloak-backup.yaml
При обновлении Keycloak рекомендуется сделать экспорт realm. Для этого добавьте переменную keycloak_realm_backup:
$ ansible-playbook -i YOUR_INVENTORY_HERE --vault-id YOUR_VAULT_HERE playbooks/maintenance/keycloak-backup.yaml -e keycloak_realm_backup='True'
Для восстановления Keycloak из S3 необходимо восстановить резервную копию базы данных. Для этого нужно указать значение переменной zalando_db_logical_backup_restore_timestamp в формате YYYY-MM-DD-HH:MM:SS.
zalando_db_logical_backup_restore_timestamp="2024-01-10-23:27:20"
Запуск playbook для восстановления Keyloack:
$ ansible-playbook -i YOUR_INVENTORY_HERE --vault-id YOUR_VAULT_HERE playbooks/maintenance/keycloak-restore.yaml -e zalando_db_logical_backup_restore_timestamp="2024-01-10-23:27:20"
Для принудительного создания резервной копии Nexus выполните следующую команду:
$ ansible-playbook -i YOUR_INVENTORY_HERE --vault-id YOUR_VAULT_HERE playbooks/maintenance/nexus-backup.yaml
Резервные копии Nexus именуются и загружаются в S3 с временной меткой в формате YYYY-MM-DD-HH-MM-SS.
Для восстановления Nexus из S3 необходимо указать значение переменной nexus_restore_timestamp в формате YYYY-MM-DD-HH-MM-SS.
nexus_restore_timestamp="2023-11-01-10:45:00"
Запуск playbook для восстановления Nexus:
$ ansible-playbook -i YOUR_INVENTORY_HERE --vault-id YOUR_VAULT_HERE playbooks/maintenance/nexus-restore.yaml -e nexus_restore_timestamp="2023-11-01-10:45:00"
Для создания резервной копии Samsara необходимо сделать дамп БД.
Запуск создания резервной копии Samsara:
$ ansible-playbook -i YOUR_INVENTORY_HERE --vault-id YOUR_VAULT_HERE playbooks/maintenance/samsara-backup.yaml
Для восстановления Samsara необходимо восстановить резервную копию БД, а затем запустить playbook playbooks/maintenance/samsara-restore.yaml.
При запуске плейбука необходимо указать требуемую временную метку имеющейся резервной копии.
zalando_db_logical_backup_restore_timestamp="2024-01-10-23:27:20"
Запуск playbook для восстановления Samsara:
$ ansible-playbook -i YOUR_INVENTORY_HERE --vault-id YOUR_VAULT_HERE playbooks/maintenance/samsara-restore.yaml -e zalando_db_logical_backup_restore_timestamp="2024-01-10-23:27:20"
Для принудительного создания резервной копии Sonarqube необходимо сделать дамп БД согласно официальной документации.
Запуск создания резервной копии Sonarqube:
$ ansible-playbook -i YOUR_INVENTORY_HERE --vault-id YOUR_VAULT_HERE playbooks/maintenance/sonarqube-backup.yaml
Для восстановления Sonarqube необходимо восстановить резервную копию БД, а затем запустить playbook playbooks/maintenance/sonarqube-restore.yaml.
При запуске плейбука необходимо указать требуемую временную метку имеющейся резервной копии.
zalando_db_logical_backup_restore_timestamp="2024-01-10-23:27:20"
Запуск playbook для восстановления Sonarqube:
$ ansible-playbook -i YOUR_INVENTORY_HERE --vault-id YOUR_VAULT_HERE playbooks/maintenance/sonarqube-restore.yaml -e zalando_db_logical_backup_restore_timestamp="2024-01-10-23:27:20"
Для принудительного создания резервной копии Postgres кластера выполните следующую команду:
$ ansible-playbook -i YOUR_INVENTORY_HERE --vault-id YOUR_VAULT_HERE playbooks/maintenance/zalando-backup.yaml
В данной Ansible роли реализовано два способа восстановления кластера:
- Восстановление в текущий кластер.
- Восстановление клонированием кластера.
Для восстановления из S3 к состоянию кластера на определённое время укажите значение переменной zalando_restore_pitr_timestamp в формате YYYY-MM-DDTHH:MM:SS+00:00 (UTC).
zalando_restore_pitr_timestamp="2023-11-01T10:45:00+03:00"
Для восстановления в текущий кластер необходимо установить значение переменной zalando_cluster_restore_in_place равным true.
Затем запустить playbook для восстановления:
$ ansible-playbook -i YOUR_INVENTORY_HERE --vault-id YOUR_VAULT_HERE playbooks/maintenance/zalando-restore.yaml -e zalando_restore_pitr_timestamp="2023-11-01T10:45:00+03:00"
Для восстановления в новый кластер клонированием текущего необходимо установить значение переменной zalando_cluster_restore_by_clone равным true.
Затем запустить playbook для восстановления:
$ ansible-playbook -i YOUR_INVENTORY_HERE --vault-id YOUR_VAULT_HERE playbooks/maintenance/zalando-restore.yaml -e zalando_restore_pitr_timestamp="2023-11-01T10:45:00+03:00"