Плейбуки
Чтобы принудительно создать резервную копию GitLab, выполните команду:
$ ansible-playbook -i <INVENTORY_NAME> --vault-id <PASSWORD_FILE> playbooks/maintenance/gitlab-backup.yaml
где:
<INVENTORY_NAME>— имя Inventory.<PASSWORD_FILE>— файл с паролем.
Резервные копии 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 <INVENTORY_NAME> --vault-id <PASSWORD_FILE> playbooks/maintenance/gitlab-restore.yaml -e gitlab_restore_timestamp="1700644874_2023_11_22_16.5.0-ee"
где:
<INVENTORY_NAME>— имя Inventory.<PASSWORD_FILE>— файл с паролем.
Чтобы принудительно создать резервную копию Keycloak, выполните следующую команду:
$ ansible-playbook -i <INVENTORY_NAME> --vault-id <PASSWORD_FILE> playbooks/maintenance/keycloak-backup.yaml
где:
<INVENTORY_NAME>— имя Inventory.<PASSWORD_FILE>— файл с паролем.
При обновлении Keycloak рекомендуется сделать экспорт realm. Для этого добавьте переменную keycloak_realm_backup:
$ ansible-playbook -i <INVENTORY_NAME> --vault-id <PASSWORD_FILE> playbooks/maintenance/keycloak-backup.yaml -e keycloak_realm_backup='True'
где:
<INVENTORY_NAME>— имя Inventory.<PASSWORD_FILE>— файл с паролем.
Чтобы восстановить 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"
Запустите плейбук для восстановления Keyloack:
$ ansible-playbook -i <INVENTORY_NAME> --vault-id <PASSWORD_FILE> playbooks/maintenance/keycloak-restore.yaml -e zalando_db_logical_backup_restore_timestamp="2024-01-10-23:27:20"
где:
<INVENTORY_NAME>— имя Inventory.<PASSWORD_FILE>— файл с паролем.
Чтобы принудительно создать резервную копию Nexus, выполните следующую команду:
$ ansible-playbook -i <INVENTORY_NAME> --vault-id <PASSWORD_FILE> playbooks/maintenance/nexus-backup.yaml
где:
<INVENTORY_NAME>— имя Inventory.<PASSWORD_FILE>— файл с паролем.
Резервные копии 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"
Запустите плейбук для восстановления Nexus:
$ ansible-playbook -i <INVENTORY_NAME> --vault-id <PASSWORD_FILE> playbooks/maintenance/nexus-restore.yaml -e nexus_restore_timestamp="2023-11-01-10:45:00"
где:
<INVENTORY_NAME>— имя Inventory.<PASSWORD_FILE>— файл с паролем.
Чтобы создать резервную копии Samsara, сделайте дамп БД.
Запустите создание резервной копии Samsara:
$ ansible-playbook -i <INVENTORY_NAME> --vault-id <PASSWORD_FILE> playbooks/maintenance/samsara-backup.yaml
где:
<INVENTORY_NAME>— имя Inventory.<PASSWORD_FILE>— файл с паролем.
Чтобы восстановить Samsara, восстановите резервную копию его базы данных, а затем запустите плейбук playbooks/maintenance/samsara-restore.yaml.
При запуске плейбука укажите желаемую временную метку имеющейся резервной копии:
zalando_db_logical_backup_restore_timestamp="2024-01-10-23:27:20
Запустите плейбук для восстановления Samsara:
$ ansible-playbook -i <INVENTORY_NAME> --vault-id <PASSWORD_FILE> playbooks/maintenance/samsara-restore.yaml -e zalando_db_logical_backup_restore_timestamp="2024-01-10-23:27:20"
где:
<INVENTORY_NAME>— имя Inventory.<PASSWORD_FILE>— файл с паролем.
Чтобы принудительно создать резервную копию Sonarqube, сделайте дамп БД как описано в официальной документации.
Запустите создание резервной копии Sonarqube:
$ ansible-playbook -i <INVENTORY_NAME> --vault-id <PASSWORD_FILE> playbooks/maintenance/sonarqube-backup.yaml
где:
<INVENTORY_NAME>— имя Inventory.<PASSWORD_FILE>— файл с паролем.
Чтобы восстановить Sonarqube, восстановите резервную копию БД, а затем запустите плейбук playbooks/maintenance/sonarqube-restore.yaml.
При запуске плейбука укажите требуемую временную метку имеющейся резервной копии.
zalando_db_logical_backup_restore_timestamp="2024-01-10-23:27:20"
Запустите плейбук для восстановления Sonarqube:
$ ansible-playbook -i <INVENTORY_NAME> --vault-id <PASSWORD_FILE> playbooks/maintenance/sonarqube-restore.yaml -e zalando_db_logical_backup_restore_timestamp="2024-01-10-23:27:20"
где:
<INVENTORY_NAME>— имя Inventory.<PASSWORD_FILE>— файл с паролем.
Чтобы принудительно создать резервную копию Postgres кластера, выполните команду:
$ ansible-playbook -i <INVENTORY_NAME> --vault-id <PASSWORD_FILE> playbooks/maintenance/zalando-backup.yaml
где:
<INVENTORY_NAME>— имя Inventory.<PASSWORD_FILE>— файл с паролем.
В данной 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.
Затем запустите плейбук для восстановления:
$ ansible-playbook -i <INVENTORY_NAME> --vault-id <PASSWORD_FILE> playbooks/maintenance/zalando-restore.yaml -e zalando_restore_pitr_timestamp="2023-11-01T10:45:00+03:00"
где:
<INVENTORY_NAME>— имя Inventory.<PASSWORD_FILE>— файл с паролем.
Чтобы восстановить в новый кластер клонированием текущего, установите значение переменной zalando_cluster_restore_by_clone равным true.
Затем запустите плейбук для восстановления:
$ ansible-playbook -i <INVENTORY_NAME> --vault-id <PASSWORD_FILE> playbooks/maintenance/zalando-restore.yaml -e zalando_restore_pitr_timestamp="2023-11-01T10:45:00+03:00"
где:
<INVENTORY_NAME>— имя Inventory.<PASSWORD_FILE>— файл с паролем.