ATE Documentation portal logo
Помощь
Обновлена 30 октября 2026 г. в 12:05

Обновление

Плейбуки для обновления пакетов Tarantool:

  • update.yml — обновление с перезапуском экземпляров;
  • continuous_update.yml — обновление без простоя, с переключением лидера;
  • update_bundle.yml — доставка новой версии пакета без перезапуска экземпляров.

update.yml

Плейбук для обновления пакетов Tarantool с перезапуском экземпляров. Выполняет доставку и установку пакета, обновление экземпляра и его перезапуск, затем ротацию старых директорий дистрибутивов. Экземпляры обновляются пакетами (serial) с перемешиванием порядка.

Переменные

Обязательные:

Переменная

Описание

tarantool_package_path

Путь к новому пакету.

Опциональные:

Переменная

Описание

update_batch_size

Количество хостов в пакете обновления. Значение по умолчанию: 2.

Примеры

Запуск через коллекцию:

ansible-playbook -i ${PATH_TO_INVENTORY} \    --user ${SUPER_USER_NAME} \    -e ansible_ssh_private_key_file=${PATH_TO_PRIVATE_KEY} \    -e tarantool_package_path=${PATH_TO_PACKAGE}/${PACKAGE_NAME} \    playbooks/update.yml

Запуск через Docker-образ инсталлятора:

docker run --network host -it --rm \    -v ${PATH_TO_PRIVATE_KEY}:/ansible/.ssh/id_private_key:Z \    -v ${PATH_TO_INVENTORY}:/ansible/inventories/hosts.yml:Z \    -v ${PATH_TO_PACKAGE}/${PACKAGE_NAME}:/ansible/packages/${PACKAGE_NAME}:Z \    -e SUPER_USER_NAME=${SUPER_USER_NAME} \    -e PACKAGE_NAME=${PACKAGE_NAME} \    ansible-tarantool-enterprise:${DEPLOY_TOOL_VERSION_TAG} \    ansible-playbook -i /ansible/inventories/hosts.yml \    --extra-vars '{        "tarantool_package_path":"/ansible/packages/'${PACKAGE_NAME}'",        "ansible_ssh_private_key_file":"/ansible/.ssh/id_private_key",        "super_user":"'${SUPER_USER_NAME}'"    }' \    playbooks/update.yml

continuous_update.yml

Плейбук для обновления кластера Tarantool 3.x с минимальным временем простоя. Во время выполнения обновляются не все экземпляры одновременно: процесс постепенно перезапускает экземпляры, переключая роль лидера в наборах реплик.

Плейбук последовательно доставляет пакет, переключает лидера на резервные экземпляры, обновляет реплики, возвращает лидерство на обновлённые экземпляры, обновляет мастера, stateless-экземпляры и экземпляры модуля API TQE (gRPC), возвращает лидерство исходным мастерам, при необходимости обновляет планировщиков TCS и применяет обновление схемы данных.

Переменные

Обязательные:

Переменная

Описание

tarantool_package_path

Путь к новому пакету.

storage_group

Группа хранилищ для обновления.

Опциональные:

Переменная

Описание

continuous_update_target_group

Группа экземпляров для обновления. Если не задана, используется tarantool_group. Значение по умолчанию: all.

update_batch_size

Количество хостов в пакете обновления. Значение по умолчанию: 1.

schedulers_name_list

Список имён экземпляров TCS Scheduler для обновления.

Примеры

Запуск через коллекцию:

ansible-playbook -i ${PATH_TO_INVENTORY} \    --user ${SUPER_USER_NAME} \    -e ansible_ssh_private_key_file=${PATH_TO_PRIVATE_KEY} \    -e tarantool_package_path=${PATH_TO_PACKAGE}/${PACKAGE_NAME} \    -e storage_group=${STORAGE_GROUP_NAME} \    playbooks/continuous_update.yml

Запуск через Docker-образ инсталлятора:

docker run --network host -it --rm \    -v ${PATH_TO_PRIVATE_KEY}:/ansible/.ssh/id_private_key:Z \    -v ${PATH_TO_INVENTORY}:/ansible/inventories/hosts.yml:Z \    -v ${PATH_TO_PACKAGE}/${PACKAGE_NAME}:/ansible/packages/${PACKAGE_NAME}:Z \    -e SUPER_USER_NAME=${SUPER_USER_NAME} \    -e PACKAGE_NAME=${PACKAGE_NAME} \    -e STORAGE_GROUP_NAME=${STORAGE_GROUP_NAME} \    ansible-tarantool-enterprise:${DEPLOY_TOOL_VERSION_TAG} \    ansible-playbook -i /ansible/inventories/hosts.yml \    --extra-vars '{        "tarantool_package_path":"/ansible/packages/'${PACKAGE_NAME}'",        "ansible_ssh_private_key_file":"/ansible/.ssh/id_private_key",        "super_user":"'${SUPER_USER_NAME}'",        "storage_group":"'${STORAGE_GROUP_NAME}'"    }' \    playbooks/continuous_update.yml

update_bundle.yml

Плейбук для доставки новой версии пакета без перезапуска экземпляров. Полезен, когда нужно подготовить новую версию приложения на серверах до запланированного окна обновления.

Переменные

Обязательные:

Переменная

Описание

tarantool_package_path

Путь к пакету.

Примеры

Запуск через коллекцию:

ansible-playbook -i ${PATH_TO_INVENTORY} \    --user ${SUPER_USER_NAME} \    -e ansible_ssh_private_key_file=${PATH_TO_PRIVATE_KEY} \    -e tarantool_package_path=${PATH_TO_PACKAGE}/${PACKAGE_NAME} \    playbooks/update_bundle.yml

Запуск через Docker-образ инсталлятора:

docker run --network host -it --rm \    -v ${PATH_TO_PRIVATE_KEY}:/ansible/.ssh/id_private_key:Z \    -v ${PATH_TO_INVENTORY}:/ansible/inventories/hosts.yml:Z \    -v ${PATH_TO_PACKAGE}/${PACKAGE_NAME}:/ansible/packages/${PACKAGE_NAME}:Z \    -e SUPER_USER_NAME=${SUPER_USER_NAME} \    ansible-tarantool-enterprise:${DEPLOY_TOOL_VERSION_TAG} \    ansible-playbook -i /ansible/inventories/hosts.yml \    --extra-vars '{        "tarantool_package_path":"/ansible/packages/'${PACKAGE_NAME}'",        "ansible_ssh_private_key_file":"/ansible/.ssh/id_private_key",        "super_user":"'${SUPER_USER_NAME}'"    }' \    playbooks/update_bundle.yml
Была ли статья полезна?