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

Роли операционной системы

Роли для подготовки и настройки операционной системы под Tarantool: проверка совместимости и настройка ОС, управление systemd-юнитами, ротация журналов, задачи cron, удаление экземпляров.

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

os_configure

Роль настройки и проверки операционной системы под установку Tarantool. Определяет дистрибутив ОС, проверяет совместимость с коллекцией и выполняет дистрибутивоспецифичные задачи.

Роль предоставляет три набора задач, вызываемых через tasks_from:

Набор задач

Описание

main.yml (по умолчанию)

Определяет дистрибутив и выполняет первичную настройку: создаёт директорию пользовательских systemd-юнитов, шаблоны unit-файлов для экземпляров Tarantool, координаторов отказоустойчивости и серверов GRPC-API TQE.

prepare/main.yml

Предустановочная подготовка ОС: ресурсные лимиты пользователя tarantool (PAM или systemd), параметры ядра, постоянное хранилище journald, дистрибутивоспецифичная подготовка. Используется плейбуком env_prepare.yml.

check/main.yml

Предустановочная проверка ОС: настройки Tarantool, параметры ядра, конфигурация journald, дистрибутивоспецифичные требования. Найденные несоответствия собираются в единый список. Используется плейбуком env_check.yml.

Поддерживаемые дистрибутивы определяются наличием файлов задач в каталоге роли: astra, centos, debian, redhat/red, rosa, ubuntu, mosos. Несовместимый дистрибутив вызывает ошибку.

Чтобы обойти несовместимость, задайте переменную os_configure_distribution — её значение подменяет автоматически определённый дистрибутив. Например, для дистрибутива, близкого к CentOS, можно задать os_configure_distribution: centos: роль выполнит задачи для CentOS, а не прервётся с ошибкой о неподдерживаемом дистрибутиве.

Примеры

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

Вызов проверки ОС:

- hosts: all  roles:    - role: tarantool.enterprise.os_configure      tasks_from: check/main.yml      vars:        os_configure_ignore_check_failure: true

systemd

Роль управления systemd-юнитами экземпляров Tarantool: создание, удаление, запуск, остановка, перезапуск, расширение unit-файлов, управление переопределением переменных окружения.

Перед выполнением действий роль определяет директорию systemd и пользователя по переменной systemd_scope: при user — пользовательская директория (~/.config/systemd/user) и пользователь tarantool, при system — системная директория (/etc/systemd/system) и пользователь root.

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

Действие

Описание

create

Создать unit-файл.

delete

Удалить unit-файл.

start

Запустить юнит.

stop

Остановить юнит.

restart

Перезапустить юнит.

disable

Отключить юнит.

reload_daemon

Перезагрузить конфигурацию systemd.

extend_unit

Расширить unit-файл дополнительными секциями.

delete_unit_extension

Удалить расширение unit-файла.

set_override_env

Установить переопределение переменной окружения.

reset_override_env

Удалить переопределение переменной окружения.

Переменные

Переменная

Описание

systemd_unit_name

Имя unit-файла. Обязательна.

systemd_scope

Область systemd: user или system. Значение по умолчанию: user.

systemd_actions

Список действий над systemd-юнитом. Обязательна.

systemd_wanted_by_target

Целевой target WantedBy для unit-файла. Значение по умолчанию зависит от systemd_scope (default.target для user, multi-user.target для system).

Примеры

- hosts: all  roles:    - role: tarantool.enterprise.systemd      vars:        systemd_unit_name: 'tarantool@{{ inventory_hostname }}'        systemd_actions:          - restart

logrotate

Роль настройки ротации журналов экземпляров через logrotate. Формирует общую конфигурацию logrotate и отдельные конфигурации для журналов каждого экземпляра — журналов Tarantool, журналов аудита и журналов отказоустойчивости (при наличии соответствующих секций в конфигурации экземпляра).

Примеры

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

crontab

Роль настройки задач cron для очистки устаревших резервных копий. Роль не имеет файла main.yml — конкретная задача cron выбирается через tasks_from.

Доступные задачи:

Задача

Описание

backup_cleanup_time

Создаёт задачу cron, удаляющую резервные копии старше crontab_backup_retention_days дней. Периодичность — crontab_backup_cleanup_time.

backup_cleanup_count

Создаёт задачу cron, оставляющую не более crontab_backup_retention_count последних резервных копий на экземпляр.

Переменные

Переменная

Описание

crontab_backup_cleanup_time

Периодичность запуска задачи cron (значение special_time модуля cron). Значение по умолчанию: weekly.

crontab_backup_retention_days

Срок хранения резервных копий в днях (для задачи backup_cleanup_time).

crontab_backup_retention_count

Количество последних резервных копий для хранения (для задачи backup_cleanup_count).

Примеры

- hosts: all  roles:    - role: tarantool.enterprise.crontab      tasks_from: backup_cleanup_time.yml

uninstall

Роль удаления экземпляров Tarantool. Полностью очищает хост от экземпляров: останавливает и удаляет systemd-юниты (экземпляров, координаторов отказоустойчивости, серверов GRPC-API), удаляет символические ссылки, директории кластера и ключи хранилища конфигурации.

Удаление директорий и systemd-юнитов выполняется один раз на физическую машину. Очистка ключей etcd выполняется один раз для кластера при tarantool_config_storage=etcd.

Роль также поддерживает удаление компонентов Tarantool Enterprise через теги: tcf, tcm, tcs — соответствующие задачи удаления вызываются при наличии тега в ansible_run_tags.

Примеры

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

Удаление вместе с компонентом TCF:

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