Обновление версии YDB на кластерах, развёрнутых с помощью Ansible
Во время начального развёртывания Ansible playbook предоставляет на выбор несколько вариантов, какой именно серверный исполняемый файл YDB (ydbd
) использовать. В этой статье объясняются доступные варианты изменения версии кластера после начального развёртывания.
Обновление исполняемых файлов через Ansible playbook
Репозиторий ydb-ansible содержит playbook под названием ydb_platform.ydb.update_executable
, который можно использовать для обновления или понижения версии кластера YDB. Перейдите в ту же директорию, которая использовалась для начального развёртывания, отредактируйте файл inventory/50-inventory.yaml
, чтобы указать целевую версию YDB для установки (обычно через переменные ydb_version
или ydb_git_version
), а затем выполните этот playbook:
ansible-playbook ydb_platform.ydb.update_executable
Playbook получает новый бинарный файл и затем разворачивает его на кластере с помощью кросс-серверного копирования Ansible. После этого он выполняет постепенную перезагрузку кластера.
Фильтрация по типу узла
Задачи в playbook ydb_platform.ydb.update_executable
помечены типами узлов, поэтому можно использовать функциональность тегов Ansible для фильтрации узлов по их типу.
Эти две команды эквивалентны и изменят конфигурацию всех узлов хранения:
ansible-playbook ydb_platform.ydb.update_executable --tags storage
ansible-playbook ydb_platform.ydb.update_executable --tags static
Эти две команды эквивалентны и изменят конфигурацию всех узлов баз данных:
ansible-playbook ydb_platform.ydb.update_executable --tags database
ansible-playbook ydb_platform.ydb.update_executable --tags dynamic
Пропуск перезагрузки
Существует тег no_restart
, чтобы только развернуть исполняемые файлы, а перезагрузку кластера пропустить. Это может быть полезно, если кластер будет перезагружен позже вручную или в рамках других задач по обслуживанию. Пример запуска:
ansible-playbook ydb_platform.ydb.update_executable --tags no_restart