Базовые роли
Базовые роли — строительные блоки коллекции: подготовка переменных, работа с пакетами и директориями, операции над кластером и конфигурацией. Остальные роли и плейбуки коллекции опираются на них.
Переменные каждой роли (с префиксом <role_name>_) по умолчанию наследуют значения из глобальных переменных с префиксом tarantool_, которые материализуются ролью prepare в словарь shared_facts. Полный справочник переменных приведён в разделе «Переменные окружения».
Роль подготовки окружения. Собирает глобальные переменные (tarantool_*) в единый словарь shared_facts — «замороженный снимок» значений, из которого остальные роли читают параметры. В снимок попадает итоговое значение каждой переменной: оно определяется по правилам приоритета Ansible — из значений по умолчанию роли (defaults), инвентаря и переменных, заданных в секции vars плейбука (play vars). Снимок пересобирается при каждом запуске роли, поэтому значения, переопределённые в секции vars плейбука, всегда попадают в shared_facts. Роль prepare вызывается в начале каждого плейбука коллекции.
Также роль формирует факты, общие для всех шагов сценария: путь доставленного пакета, флаг необходимости перезапуска, списки резервных копий и отключённых экземпляров.
Выполняемые действия задаются списком prepare_actions. Значение по умолчанию:
Действие | Описание |
|---|---|
| Устанавливает общие факты повышения привилегий ( |
| Собирает словарь |
Доступные действия, не входящие в значение по умолчанию:
Действие | Описание |
|---|---|
| Группирует хосты по типу |
- hosts: allroles:- role: tarantool.enterprise.prepare
С дополнительным действием inventory_map:
- hosts: allroles:- role: tarantool.enterprise.preparevars:prepare_actions:- shared_become_fact- base_prepare- inventory_map
Роль примитивов работы с пакетами и директориями. Выполняет доставку, распаковку и установку пакетов, создание директорий, обновление символических ссылок на дистрибутив, очистку данных экземпляра и ротацию старых дистрибутивов.
Выполняемые действия задаются списком common_actions:
Действие | Описание |
|---|---|
| Создаёт директории из списка |
| Копирует пакет из |
| Распаковывает TGZ-архив в директорию дистрибутива. При |
| Устанавливает RPM- или DEB-пакет через системный менеджер пакетов (dnf/apt). |
| Получает метаданные пакета, обновляет установленный пакет и определяет, требуется ли перезапуск экземпляра. |
| Обновляет символическую ссылку экземпляра на новый дистрибутив (в режиме мультиверсионности) и проверяет необходимость перезапуска. |
| Собирает информацию об экземпляре (пути, консольный сокет, имя службы systemd) через модуль |
| Удаляет снимки состояния, WAL-файлы и другие данные экземпляра. Пути, перечисленные в |
| Удаляет избыточные директории дистрибутивов, оставляя не более |
- hosts: allroles:- role: tarantool.enterprise.commonvars:common_actions:- create_directories- deliver_package- unpack_tgz
Роль операций над кластером: резервное копирование и восстановление экземпляров, выполнение Lua-кода, изменение параметров во время исполнения, ожидание запуска экземпляров.
Выполняемые действия задаются списком cluster_ops_actions:
Действие | Описание |
|---|---|
| Создаёт резервную копию экземпляра: запускает резервное копирование, ожидает готовности снимка состояния, собирает файлы копии и (при |
| Запускает резервное копирование экземпляра без ожидания завершения. Сохраняет список файлов копии в факт |
| Останавливает резервное копирование экземпляра и ожидает готовности снимка состояния. |
| Восстанавливает экземпляр из резервной копии. Копия может быть задана путём на целевом хосте ( |
| Выполняет Lua-код на целевых экземплярах. Код передаётся через |
| Выполняет Lua-код на управляющем экземпляре ( |
| Применяет параметры из |
| Ожидает перехода экземпляра в допустимое состояние из списка |
- hosts: allroles:- role: tarantool.enterprise.cluster_opsvars:cluster_ops_actions:- backup_start- backup_stop
Роль генерации и распространения конфигурации экземпляров Tarantool. Формирует конфигурационный файл из шаблона config.yaml.j2 по данным инвентаря и отправляет его в хранилище конфигурации или сохраняет локально.
Выполняемые действия задаются списком tarantool_config_actions:
Действие | Описание |
|---|---|
| Генерирует конфигурационный файл из шаблона. Проверяет корректность конфигурации инвентаря через модуль |
| Отправляет сгенерированную конфигурацию в хранилище (etcd или Tarantool) по ключу |
| Сохраняет сгенерированную конфигурацию в файл |
| Удаляет ключи хранилища etcd по префиксу |
- hosts: allroles:- role: tarantool.enterprise.tarantool_configvars:tarantool_config_actions:- generate- send