Выполнение миграций с удалённой машины
В этом руководстве показано, как выполнить [миграции] с сервера, который не входит в состав кластера.
Руководство включает следующие шаги:
- {linkto(#user_guide-migrations_remote_host-prereq)text
- Запуск и настройка стенда
- Запуск миграции
- Остановка стенда
Для выполнения примера требуются:
-
установленный Docker-образ Tarantool DB;
-
приложение Docker compose;
-
исходные файлы примера
migrations_from_remote_hosts.
Запустить кластер из этого примера можно любым доступным способом — через Ansible Tarantool Enterprise, docker compose или локально. В руководстве для запуска используется Docker compose.
Для запуска и настройки стенда используются файлы из папки migrations_from_remote_hosts:
docker-compose.yml— описание узлов кластера;installer/topology.json— описание топологии кластера.
Перейдите в директорию примера migrations_from_remote_host:
cd ./docs/docs/ru/assets/examples/migrations_from_remote_host/
Запустите стенд через Docker compose:
docker compose up -d --build
Чтобы проверить успешный запуск кластера, выполните следующую команду:
docker compose logs installer
При успешном старте последняя строка в выводе будет следующей:
installer-1 | [bootstrap.sh] Cluster started
Запущенный стенд состоит из:
- кластера Tarantool DB из двух роутеров и двух шардов;
- веб-сервера nginx, предоставляющего доступ к удаленному серверу по HTTP с авторизацией и балансировкой нагрузки.
Удаленный доступ к админ-функциям кластера доступен по адресу localhost:8000. Проверить и настроить узлы кластера изнутри можно в веб-интерфейсе Tarantool DB, например по адресу localhost:8081.
Для запуска миграции используются следующие файлы:
config.yml(./user-host/config.yml) — файл конфигурации кластера;migrations/source/(./user-host/migrations/source/) — директория, содержащая файлы миграций;- скрипт
migrate.sh(./tools/client/migrate.sh) — загрузка конфигурации кластера, клиентского кода и выполнения миграций.
Перед запуском миграции скопируйте скрипт migrate.sh, выполняющий миграции, из директории tools/client:
cp ../../../tools/client/migrate.sh ./chmod a+x migrate.sh
Запустите миграцию:
TARANTOOLDB_TARGET_URI=localhost:8000 TARANTOOLDB_BOOTSTRAP_PATH=./user-host/ TARANTOOLDB_HEADERS="Authorization: Bearer 123" ./migrate.sh
Здесь для удаленного доступа используется авторизация по токену.
В запросе авторизации должен присутствовать заголовок Authorization: Bearer 123.
Логика проверки этого заголовка настроена в конфигурации nginx.
После успешного завершения миграции в консоли появится следующее сообщение:
Load config..Config loadedStart migrate..Migrations completed successfully
Проверить успешное выполнение миграций можно в веб-интерфейсе Tarantool DB, там можно увидеть загруженную конфигурацию кластера
и созданные спейсы test1 и test2 (вкладка Space Explorer).
Чтобы остановить стенд, выполните следующую команду:
docker compose down