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

Базовые роли

Базовые роли — строительные блоки коллекции: подготовка переменных, работа с пакетами и директориями, операции над кластером и конфигурацией. Остальные роли и плейбуки коллекции опираются на них.

Переменные каждой роли (с префиксом <role_name>_) по умолчанию наследуют значения из глобальных переменных с префиксом tarantool_, которые материализуются ролью prepare в словарь shared_facts. Полный справочник переменных приведён в разделе «Переменные окружения».

prepare

Роль подготовки окружения. Собирает глобальные переменные (tarantool_*) в единый словарь shared_facts — «замороженный снимок» значений, из которого остальные роли читают параметры. В снимок попадает итоговое значение каждой переменной: оно определяется по правилам приоритета Ansible — из значений по умолчанию роли (defaults), инвентаря и переменных, заданных в секции vars плейбука (play vars). Снимок пересобирается при каждом запуске роли, поэтому значения, переопределённые в секции vars плейбука, всегда попадают в shared_facts. Роль prepare вызывается в начале каждого плейбука коллекции.

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

Выполняемые действия задаются списком prepare_actions. Значение по умолчанию:

Действие

Описание

shared_become_fact

Устанавливает общие факты повышения привилегий (ansible_become_method, tarantool_shared_become).

base_prepare

Собирает словарь shared_facts из глобальных переменных tarantool_* и инициализирует общие для сценария факты.

Доступные действия, не входящие в значение по умолчанию:

Действие

Описание

inventory_map

Группирует хосты по типу ate_instance_type (tarantool, tcm, tqe-grpc, tcs-scheduler, tcf-gateway, tcf-destination, cdc) с помощью group_by. Дополнительно создаёт группу vshard_router_hosts (маршрутизаторы vshard TQE) — не по ate_instance_type, а по ролям roles.tqe-router / app.roles.api в tarantool_config_replicaset; от неё зависит плейбук tt_vshard_bootstrap.yml. Используется плейбуком install.yml.

Примеры

- hosts: all  roles:    - role: tarantool.enterprise.prepare

С дополнительным действием inventory_map:

- hosts: all  roles:    - role: tarantool.enterprise.prepare      vars:        prepare_actions:          - shared_become_fact          - base_prepare          - inventory_map

common

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

Выполняемые действия задаются списком common_actions:

Действие

Описание

create_directories

Создаёт директории из списка common_directory_list. Если список не задан — стандартный набор директорий Tarantool (данные, журналы, снимки состояния, run-директория и другие).

deliver_package

Копирует пакет из common_package_path на целевой хост в /tmp/ и сохраняет путь в факт delivered_package_path. Выполняется один раз на физическую машину.

unpack_tgz

Распаковывает TGZ-архив в директорию дистрибутива. При common_simple_tgz=true распаковывает в common_simple_tgz_dest_dir.

install_rpm_or_deb

Устанавливает RPM- или DEB-пакет через системный менеджер пакетов (dnf/apt).

update_package

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

update_instance

Обновляет символическую ссылку экземпляра на новый дистрибутив (в режиме мультиверсионности) и проверяет необходимость перезапуска.

get_instance_info

Собирает информацию об экземпляре (пути, консольный сокет, имя службы systemd) через модуль tarantool_get_instance_info и сохраняет в факт instance_info.

clean_instance_data

Удаляет снимки состояния, WAL-файлы и другие данные экземпляра. Пути, перечисленные в common_paths_to_keep_on_cleanup, сохраняются.

rotate_dists

Удаляет избыточные директории дистрибутивов, оставляя не более common_keep_num_latest_dists последних.

Примеры

- hosts: all  roles:    - role: tarantool.enterprise.common      vars:        common_actions:          - create_directories          - deliver_package          - unpack_tgz

cluster_ops

Роль операций над кластером: резервное копирование и восстановление экземпляров, выполнение Lua-кода, изменение параметров во время исполнения, ожидание запуска экземпляров.

Выполняемые действия задаются списком cluster_ops_actions:

Действие

Описание

backup

Создаёт резервную копию экземпляра: запускает резервное копирование, ожидает готовности снимка состояния, собирает файлы копии и (при tarantool_fetch_backups=true) забирает их на инсталлятор.

backup_start

Запускает резервное копирование экземпляра без ожидания завершения. Сохраняет список файлов копии в факт instance_backup_files.

backup_stop

Останавливает резервное копирование экземпляра и ожидает готовности снимка состояния.

restore

Восстанавливает экземпляр из резервной копии. Копия может быть задана путём на целевом хосте (tarantool_restore_backup_path) или локальным путём инсталлятора (tarantool_restore_backup_path_local).

eval

Выполняет Lua-код на целевых экземплярах. Код передаётся через cluster_ops_eval_body или файл cluster_ops_eval_file.

eval_on_control_instance

Выполняет Lua-код на управляющем экземпляре (control_instance) один раз для всего кластера.

patch_instance_in_runtime

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

wait_instance_started

Ожидает перехода экземпляра в допустимое состояние из списка cluster_ops_allowed_statuses. Проверка выполняется с повторами (cluster_ops_wait_alive_retries, cluster_ops_wait_alive_delay).

Примеры

- hosts: all  roles:    - role: tarantool.enterprise.cluster_ops      vars:        cluster_ops_actions:          - backup_start          - backup_stop

tarantool_config

Роль генерации и распространения конфигурации экземпляров Tarantool. Формирует конфигурационный файл из шаблона config.yaml.j2 по данным инвентаря и отправляет его в хранилище конфигурации или сохраняет локально.

Выполняемые действия задаются списком tarantool_config_actions:

Действие

Описание

generate

Генерирует конфигурационный файл из шаблона. Проверяет корректность конфигурации инвентаря через модуль validate_config и формирует файл по шаблону config.yaml.j2.

send

Отправляет сгенерированную конфигурацию в хранилище (etcd или Tarantool) по ключу <prefix>/config/all. Выполняется один раз для кластера.

save_locally

Сохраняет сгенерированную конфигурацию в файл tarantool_config_filepath на инсталляторе. Выполняется один раз для кластера. Используется при tarantool_config_storage=local.

etcd_cleanup

Удаляет ключи хранилища etcd по префиксу tarantool_config_storage_prefix.

Примеры

- hosts: all  roles:    - role: tarantool.enterprise.tarantool_config      vars:        tarantool_config_actions:          - generate          - send
Была ли статья полезна?