Выполнение миграций с удалённой машины¶
В этом руководстве показано, как выполнить миграции с сервера, который не входит в состав кластера.
Руководство включает следующие шаги:
Пререквизиты¶
Для выполнения примера требуются:
установленный Docker-образ Tarantool DB;
приложение Docker compose;
исходные файлы примера
migrations_from_remote_hosts
.Примечание
Есть два способа получить исходные файлы примера:
Архив с полной документацией Tarantool DB, полученный по почте или скачанный в личном кабинете tarantool.io. Пример архива:
tarantooldb-documentation-0.8.0.tar.gz
. Примерmigrations_from_remote_hosts
расположен в таком архиве в директории./doc/examples/migrations_from_remote_hosts/
.Отдельный архив migrations_from_remote_hosts.tar.gz, скачанный c сайта Tarantool.
Запустить кластер из этого примера можно любым доступным способом – через Ansible Tarantool Enterprise, docker compose или локально. В руководстве для запуска используется Docker compose.
Запуск и настройка стенда¶
Для запуска и настройки стенда используются файлы из папки migrations_from_remote_hosts
:
docker-compose.yml
– описание узлов кластера;installer/topology.json
– описание топологии кластера.
Перейдите в директорию примера migrations_from_remote_host
:
cd ./doc/examples/migrations_from_remote_host/
Запустите стенд через Docker compose:
docker compose up -d --build
Чтобы проверить успешный запуск кластера, выполните следующую команду:
docker compose logs installer
При успешном старте последняя строка в выводе будет следующей:
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 loaded
Start migrate..
Migrations completed successfully
Проверить успешное выполнение миграций можно в веб-интерфейсе Tarantool DB, там можно увидеть загруженную конфигурацию кластера
и созданные спейсы test1
и test2
(вкладка Space Explorer).