Резервное копирование и восстановление Vault
Резервное копирование Vault можно выполнить двумя способами:
- Вручную, с помощью стандартной процедуры резервного копирования данных хранилища Hashicorp.
- Скриптом для запуска плейбуков Ansible.
Чтобы настроить резервное копирование стандартной процедурой Hashicorp Vault:
-
Инициализируйте переменную среды:
$ export VAULT_ADDR='http://xxx.xxx.xxx.xxx:<НОМЕР_ПОРТА>'Здесь
<НОМЕР_ПОРТА>— номер порта кластеров Vault, имеющий значения:8100— для кластера Vault-transit.8200— для кластера Vault.
-
Определите активный сервер Vault командой
vault status. В выводе команды в строкеHA Clusterбудет IP-адрес активного сервера.Если вы не на активном сервере (
HA Mode:standby), переключитесь на него командойexport VAULT_ADDR=…. -
Авторизуйтесь на активном сервере:
$ vault login <ТОКЕН_VAULT> -
Сохраните снапшот данных Vault. Снапшот может быть использован для восстановления данных Vault на момент времени, когда он был сделан.
$ vault operator raft snapshot save <ИМЯ_ФАЙЛА> -
Проверьте сохраненный файл резервной копии:
$ vault operator raft snapshot inspect <ИМЯ_ФАЙЛА>Для проверки файла не требуется подключение к кластеру и авторизация, достаточно иметь установленный Vault и файл резервной копии.
Чтобы восстановить резервную копию из снапшота стандартной процедурой Hashicorp Vault:
$ vault operator raft snapshot restore <ИМЯ_ФАЙЛА>
Чтобы настроить резервное копирование Vault скриптом для запуска плейбуков Ansible:
-
В файле с настройками резервного копирования
/deploy/installer/ansible_collections/vk/s3_ops/playbooks/vars/backup_vars.ymlукажите хост для хранения резервных копий данных. -
Запустите один из скриптов для запуска плейбуков Ansible:
-
Через Cron:
$ sudo -E ./01_deploy_helper.sh ansible-playbook -i inventory.yml -e @ansible-vault.yml -e @vault-transit -e @vault vk.s3_ops.backup --tags vault,vault-transit -
Вручную:
$ sudo -E ./01_deploy_helper.sh ansible-playbook -i inventory.yml -e @ansible-vault.yml -e @vault-transit -e @vault vk.s3_ops.backup --tags vault,vault-transit
-