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

Жизненный цикл

Плейбуки для управления жизненным циклом экземпляров Tarantool: установка, настройка, запуск, остановка, проверка состояния, перенос между серверами и удаление.

install.yml

Универсальный плейбук установки продуктов на основе Tarantool 3.x Enterprise Edition:

  • Tarantool 3.x (приложения, TDB);
  • TCF (Tarantool Clusters Federation);
  • TQE (Tarantool Queue Enterprise);
  • TCS (Tarantool Column Store);
  • TCM (Tarantool Cluster Manager);
  • CDC (Change Data Capture).

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

Группы хостов формируются автоматически на этапе подготовки (prepare) на основе переменной ate_instance_type, заданной для каждого экземпляра. Задавать эту переменную вручную не требуется.

При использовании генератора инвентаря значение ate_instance_type определяется автоматически: по типу кластера и имени компонента, к которому относится экземпляр, генератор выбирает соответствующий класс экземпляра, который и выставляет значение ate_instance_type.

Группа

Экземпляры

Значение ate_instance_type

tarantool_platform_hosts

Экземпляры Tarantool 3.x

tarantool

tcf_destination_hosts

TCF Destination

tcf-destination

tcf_gateway_hosts

TCF Gateway

tcf-gateway

tarantool_queue_enterprise_hosts

TQE

tqe-grpc

tarantool_scheduler_hosts

TCS Scheduler

tcs-scheduler

tarantool_cluster_manager_hosts

TCM

tcm

tarantool_cdc_hosts

CDC

cdc

Переменные

Общие переменные установки:

Переменная

Описание

tarantool_package_path

Путь к пакету приложения. Обязательная переменная.

tarantool_app_name

Имя приложения Tarantool. Обязательная переменная.

tarantool_configure_logrotate

Настраивать ротацию журналов при установке. Значение по умолчанию: true.

Параметры подключения к хранилищу конфигурации (используются при установке кластера Tarantool):

Переменная

Описание

tarantool_config_storage

Тип хранилища конфигурации: etcd, tarantool или local. Значение по умолчанию: etcd.

tarantool_config_storage_endpoints

Список конечных точек хранилища конфигурации. Для etcd — список URL-строк (например, ["http://etcd:2379"]); для хранилища на базе Tarantool — список словарей (см. ниже «Подключение к хранилищу на базе Tarantool по TLS»). Значение по умолчанию: ["http://etcd:2379"].

is_config_storage

Признак того, что устанавливаемый кластер Tarantool сам используется в качестве Config Storage. Значение по умолчанию: false.

Примеры

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

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/install.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/install.yml

Для установки на уровне системы (под пользователем root) задайте переменные tarantool_shared_become_user=root и systemd_scope=system.

configure.yml

Плейбук для генерации конфигурации Tarantool 3.x и её отправки в централизованное хранилище конфигурации.

Поддерживаемые хранилища:

  • etcd (значение по умолчанию);
  • Tarantool;
  • локальный файл.

Поведение плейбука зависит от переменной tarantool_config_storage:

  • при etcd — конфигурация генерируется и отправляется в etcd;
  • при tarantool — конфигурация генерируется, сохраняется локально и публикуется в хранилище на базе Tarantool через tt cluster publish (публикация не выполняется, если сам устанавливаемый кластер используется в качестве хранилища конфигурации — is_config_storage: true);
  • при local — конфигурация генерируется и сохраняется локально. Рекомендуется использовать только для развёртывания TbCS.

Переменные

Переменная

Описание

tarantool_config_storage

Тип хранилища конфигурации: etcd, tarantool или local. Значение по умолчанию: etcd.

tarantool_config_storage_endpoints

Список конечных точек хранилища конфигурации. Для etcd — список URL-строк (например, ["http://etcd:2379"]); для хранилища на базе Tarantool — список словарей (см. ниже «Подключение к хранилищу на базе Tarantool по TLS»). Значение по умолчанию: ["http://etcd:2379"].

tarantool_config_storage_prefix

Префикс ключа в хранилище конфигурации, под которым хранится конфигурация кластера. Применяется в обоих режимах (etcd и Tarantool). Значение по умолчанию: "/tarantool/{{ tarantool_app_name }}".

tarantool_app_name

Имя приложения. Используется как часть префикса ключа в хранилище конфигурации. При использовании генератора инвентаря формируется автоматически: по умолчанию равен cluster_name, либо берётся из tarantool_app_name в секции constants:, если задан явно.

is_config_storage

Признак того, что кластер сам используется в качестве хранилища конфигурации (TbCS). При true публикация конфигурации через tt cluster publish не выполняется — чтобы кластер не публиковал конфигурацию в самого себя. Значение по умолчанию: false. Не зависит от tarantool_config_storage: local отключает публикацию полностью, а is_config_storage пропускает её только в режиме tarantool.

Подключение к хранилищу на базе Tarantool по TLS

В режиме tarantool вся настройка TLS и аутентификации указывается в словаре tarantool_config_storage_endpoints — отдельные переменные tarantool_etcd_* для SSL в этом режиме не применяются:

tarantool_config_storage_endpoints:  - uri: "https://config-storage-01:4401"    login: "config-storage"    password: {{ secure_password }}    params:      transport: "ssl"      ssl_cert_file: '/app/tarantool/certs/server.crt'      ssl_key_file: '/app/tarantool/certs/server.key'

Параметры SSL для подключения к etcd (только режим etcd) и подробное описание подключения приведены в разделе Переменные окружения.

Примеры

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

ansible-playbook -i ${PATH_TO_INVENTORY} \    --user ${SUPER_USER_NAME} \    -e ansible_ssh_private_key_file=${PATH_TO_PRIVATE_KEY} \    playbooks/configure.yml --limit ${HOSTS}

Запуск через 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 \    -e SUPER_USER_NAME=${SUPER_USER_NAME} \    ansible-tarantool-enterprise:${DEPLOY_TOOL_VERSION_TAG} \    ansible-playbook -i /ansible/inventories/hosts.yml \    --extra-vars '{        "ansible_ssh_private_key_file":"/ansible/.ssh/id_private_key",        "super_user":"'${SUPER_USER_NAME}'"    }' \    playbooks/configure.yml --limit ${HOSTS}

start.yml

Плейбук для запуска экземпляров Tarantool. Выполняет подготовку переменных, определение операционной системы и запуск systemd-сервиса экземпляра.

Примеры

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

ansible-playbook -i ${PATH_TO_INVENTORY} \    --user ${SUPER_USER_NAME} \    -e ansible_ssh_private_key_file=${PATH_TO_PRIVATE_KEY} \    playbooks/start.yml --limit ${LIMIT}

Запуск через 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 \    -e SUPER_USER_NAME=${SUPER_USER_NAME} \    ansible-tarantool-enterprise:${DEPLOY_TOOL_VERSION_TAG} \    ansible-playbook -i /ansible/inventories/hosts.yml \    --extra-vars '{        "ansible_ssh_private_key_file":"/ansible/.ssh/id_private_key",        "super_user":"'${SUPER_USER_NAME}'"    }' \    playbooks/start.yml --limit ${LIMIT}

stop.yml

Плейбук для остановки экземпляров Tarantool. Выполняет подготовку переменных, определение операционной системы и остановку systemd-сервиса экземпляра.

Примеры

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

ansible-playbook -i ${PATH_TO_INVENTORY} \    --user ${SUPER_USER_NAME} \    -e ansible_ssh_private_key_file=${PATH_TO_PRIVATE_KEY} \    playbooks/stop.yml --limit ${LIMIT}

Запуск через 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 \    -e SUPER_USER_NAME=${SUPER_USER_NAME} \    ansible-tarantool-enterprise:${DEPLOY_TOOL_VERSION_TAG} \    ansible-playbook -i /ansible/inventories/hosts.yml \    --extra-vars '{        "ansible_ssh_private_key_file":"/ansible/.ssh/id_private_key",        "super_user":"'${SUPER_USER_NAME}'"    }' \    playbooks/stop.yml --limit ${LIMIT}

restart.yml

Плейбук для перезапуска экземпляров Tarantool. Выполняет подготовку переменных, определение операционной системы и перезапуск systemd-сервиса экземпляра.

Примеры

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

ansible-playbook -i ${PATH_TO_INVENTORY} \    --user ${SUPER_USER_NAME} \    -e ansible_ssh_private_key_file=${PATH_TO_PRIVATE_KEY} \    playbooks/restart.yml --limit ${LIMIT}

Запуск через 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 \    -e SUPER_USER_NAME=${SUPER_USER_NAME} \    ansible-tarantool-enterprise:${DEPLOY_TOOL_VERSION_TAG} \    ansible-playbook -i /ansible/inventories/hosts.yml \    --extra-vars '{        "ansible_ssh_private_key_file":"/ansible/.ssh/id_private_key",        "super_user":"'${SUPER_USER_NAME}'"    }' \    playbooks/restart.yml --limit ${LIMIT}

check.yml

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

Переменные

Переменная

Описание

tarantool_allowed_statuses

Список допустимых состояний экземпляра. Значение по умолчанию: ['ready'].

tarantool_wait_alive_retries

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

tarantool_wait_alive_delay

Задержка между попытками в секундах. Значение по умолчанию: 1.

Примеры

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

ansible-playbook -i ${PATH_TO_INVENTORY} \    --user ${SUPER_USER_NAME} \    -e ansible_ssh_private_key_file=${PATH_TO_PRIVATE_KEY} \    playbooks/check.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 \    -e SUPER_USER_NAME=${SUPER_USER_NAME} \    ansible-tarantool-enterprise:${DEPLOY_TOOL_VERSION_TAG} \    ansible-playbook -i /ansible/inventories/hosts.yml \    --extra-vars '{        "ansible_ssh_private_key_file":"/ansible/.ssh/id_private_key",        "super_user":"'${SUPER_USER_NAME}'"    }' \    playbooks/check.yml

Список допустимых состояний можно изменить через переменную tarantool_allowed_statuses, например задав ей значение ['ready','check_warnings'].

uninstall.yml

Плейбук для удаления экземпляров Tarantool и связанных компонентов. Останавливает и удаляет systemd unit-файлы, удаляет директории кластера и очищает ключи в хранилище конфигурации.

Теги

Удаление экземпляров Tarantool выполняется по умолчанию. Удаление остальных компонентов происходит только при явном указании соответствующего тега:

Тег

Что удаляется

tarantool

Экземпляры Tarantool, GRPC-сервисы и ключи в хранилище конфигурации (по умолчанию).

tcf

Tarantool Clusters Federation.

tcm

Tarantool Cluster Manager.

tcs

Tarantool Column Store.

Теги можно комбинировать. Например, --tags tarantool,tcf,tcm удалит экземпляры Tarantool, TCF и TCM.

Переменные

Переменная

Описание

confirm_deletion

Запрашивать интерактивное подтверждение перед удалением. Значение по умолчанию: true.

Примеры

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

ansible-playbook -i ${PATH_TO_INVENTORY} \    --user ${SUPER_USER_NAME} \    -e ansible_ssh_private_key_file=${PATH_TO_PRIVATE_KEY} \    playbooks/uninstall.yml --tags tarantool

Запуск через 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 \    -e SUPER_USER_NAME=${SUPER_USER_NAME} \    ansible-tarantool-enterprise:${DEPLOY_TOOL_VERSION_TAG} \    ansible-playbook -i /ansible/inventories/hosts.yml \    --extra-vars '{        "ansible_ssh_private_key_file":"/ansible/.ssh/id_private_key",        "super_user":"'${SUPER_USER_NAME}'"    }' \    playbooks/uninstall.yml --tags tarantool

rebootstrap.yml

Плейбук для пересоздания экземпляра Tarantool с потерей данных. Останавливает экземпляр, очищает его данные, запускает заново и дожидается готовности.

Примеры

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

ansible-playbook -i ${PATH_TO_INVENTORY} \    --user ${SUPER_USER_NAME} \    -e ansible_ssh_private_key_file=${PATH_TO_PRIVATE_KEY} \    playbooks/rebootstrap.yml --limit ${LIMIT}

Запуск через 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 \    -e SUPER_USER_NAME=${SUPER_USER_NAME} \    ansible-tarantool-enterprise:${DEPLOY_TOOL_VERSION_TAG} \    ansible-playbook -i /ansible/inventories/hosts.yml \    --extra-vars '{        "ansible_ssh_private_key_file":"/ansible/.ssh/id_private_key",        "super_user":"'${SUPER_USER_NAME}'"    }' \    playbooks/rebootstrap.yml --limit ${LIMIT}

remove_instances.yml

Плейбук для штатного удаления экземпляров или целых наборов реплик из кластера с сохранением работоспособности оставшихся экземпляров.

Для наборов реплик с шардированием плейбук предварительно устанавливает вес набора реплик в 0 и дожидается завершения ребалансировки бакетов, чтобы избежать потери данных. Затем удаляет экземпляры из конфигурации кластера в хранилище, останавливает их systemd-сервисы и удаляет файлы. В конце проверяет состояние оставшихся экземпляров кластера.

Переменные

Переменная

Описание

replicaset_to_remove

Имя набора реплик для удаления целиком. Режим удаления набора реплик.

instances_to_remove

Список экземпляров для удаления. Режим удаления отдельных экземпляров.

skip_verify

Пропустить проверку состояния оставшегося кластера после удаления. Значение по умолчанию: false.

wait_rebalancing_retries

Количество повторных проверок при ожидании ребалансировки бакетов. Значение по умолчанию: 60.

wait_rebalancing_delay

Задержка между проверками ребалансировки в секундах. Значение по умолчанию: 10.

Цели удаления определяются в следующем порядке: instances_to_remove (удаление отдельных экземпляров), replicaset_to_remove (удаление набора реплик), либо параметр --limit (удаление отдельных экземпляров, попавших в ограничение). Укажите ровно один из способов.

Примеры

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

ansible-playbook -i ${PATH_TO_INVENTORY} \    --user ${SUPER_USER_NAME} \    -e ansible_ssh_private_key_file=${PATH_TO_PRIVATE_KEY} \    playbooks/remove_instances.yml --limit ${LIMIT}

Запуск через 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 \    -e SUPER_USER_NAME=${SUPER_USER_NAME} \    ansible-tarantool-enterprise:${DEPLOY_TOOL_VERSION_TAG} \    ansible-playbook -i /ansible/inventories/hosts.yml \    --extra-vars '{        "ansible_ssh_private_key_file":"/ansible/.ssh/id_private_key",        "super_user":"'${SUPER_USER_NAME}'"    }' \    playbooks/remove_instances.yml --limit ${LIMIT}

relocate_instances.yml

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

Плейбук выполняет шаги в следующем порядке:

  1. Разрешает параметры миграции — имена новых и удаляемых экземпляров и целевой сервер.
  2. Подготавливает операционную систему целевого сервера (от имени пользователя root).
  3. Загружает полную конфигурацию кластера в хранилище конфигурации.
  4. Устанавливает новые экземпляры и проверяет их состояние.
  5. Ожидает синхронизации репликации на новых экземплярах. Проверка выполняется всегда, перед удалением старых экземпляров (подробнее — в описании переменных tarantool_replication_sync_* в разделе «Переменные окружения»).
  6. Удаляет старые экземпляры (штатное удаление, как в remove_instances.yml).
  7. Выполняет финальную проверку состояния оставшегося кластера.

Переменные

Переменная

Описание

migration_to_server

Целевой сервер (имя группы хостов в инвентаре), на который переносятся экземпляры.

new_instances

Список имён новых экземпляров, устанавливаемых на целевом сервере.

instances_to_remove

Список имён старых экземпляров, удаляемых после синхронизации репликации.

Примеры

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

ansible-playbook -i ${PATH_TO_INVENTORY} \    --user ${SUPER_USER_NAME} \    -e ansible_ssh_private_key_file=${PATH_TO_PRIVATE_KEY} \    playbooks/relocate_instances.yml
Была ли статья полезна?