VK Dev Platform logo
Помощь
Обновлена 29 июля 2024 г. в 11:31

Плейбуки

GitLab

Создание резервной копии

Чтобы принудительно создать резервную копию 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

Создание резервной копии

Чтобы принудительно создать резервную копию 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

Создание резервной копии

Чтобы принудительно создать резервную копию 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, сделайте дамп БД.

Запустите создание резервной копии 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, сделайте дамп БД как описано в официальной документации.

Запустите создание резервной копии 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> — файл с паролем.

Zalando

Создание резервной копии

Чтобы принудительно создать резервную копию 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).

Пример Point In Time Recovery для часового пояса GTM+3
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> — файл с паролем.