Обновление
Плейбуки для обновления пакетов Tarantool:
update.yml— обновление с перезапуском экземпляров;continuous_update.yml— обновление без простоя, с переключением лидера;update_bundle.yml— доставка новой версии пакета без перезапуска экземпляров.
Плейбук для обновления пакетов Tarantool с перезапуском экземпляров. Выполняет доставку и установку пакета, обновление экземпляра и его перезапуск, затем ротацию старых директорий дистрибутивов. Экземпляры обновляются пакетами (serial) с перемешиванием порядка.
Обязательные:
Переменная | Описание |
|---|---|
| Путь к новому пакету. |
Опциональные:
Переменная | Описание |
|---|---|
| Количество хостов в пакете обновления. Значение по умолчанию: |
Запуск через коллекцию:
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
Плейбук для обновления кластера Tarantool 3.x с минимальным временем простоя. Во время выполнения обновляются не все экземпляры одновременно: процесс постепенно перезапускает экземпляры, переключая роль лидера в наборах реплик.
Плейбук последовательно доставляет пакет, переключает лидера на резервные экземпляры, обновляет реплики, возвращает лидерство на обновлённые экземпляры, обновляет мастера, stateless-экземпляры и экземпляры модуля API TQE (gRPC), возвращает лидерство исходным мастерам, при необходимости обновляет планировщиков TCS и применяет обновление схемы данных.
Обязательные:
Переменная | Описание |
|---|---|
| Путь к новому пакету. |
| Группа хранилищ для обновления. |
Опциональные:
Переменная | Описание |
|---|---|
| Группа экземпляров для обновления. Если не задана, используется |
| Количество хостов в пакете обновления. Значение по умолчанию: |
| Список имён экземпляров 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
Плейбук для доставки новой версии пакета без перезапуска экземпляров. Полезен, когда нужно подготовить новую версию приложения на серверах до запланированного окна обновления.
Обязательные:
Переменная | Описание |
|---|---|
| Путь к пакету. |
Запуск через коллекцию:
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