Роли операционной системы
Роли для подготовки и настройки операционной системы под Tarantool: проверка совместимости и настройка ОС, управление systemd-юнитами, ротация журналов, задачи cron, удаление экземпляров.
Переменные каждой роли (с префиксом <role_name>_) по умолчанию наследуют значения из глобальных переменных с префиксом tarantool_, материализованных ролью prepare в словарь shared_facts. Полный справочник переменных приведён в разделе «Переменные окружения».
Роль настройки и проверки операционной системы под установку Tarantool. Определяет дистрибутив ОС, проверяет совместимость с коллекцией и выполняет дистрибутивоспецифичные задачи.
Роль предоставляет три набора задач, вызываемых через tasks_from:
Набор задач | Описание |
|---|---|
| Определяет дистрибутив и выполняет первичную настройку: создаёт директорию пользовательских systemd-юнитов, шаблоны unit-файлов для экземпляров Tarantool, координаторов отказоустойчивости и серверов GRPC-API TQE. |
| Предустановочная подготовка ОС: ресурсные лимиты пользователя |
| Предустановочная проверка ОС: настройки Tarantool, параметры ядра, конфигурация journald, дистрибутивоспецифичные требования. Найденные несоответствия собираются в единый список. Используется плейбуком |
Поддерживаемые дистрибутивы определяются наличием файлов задач в каталоге роли: astra, centos, debian, redhat/red, rosa, ubuntu, mosos. Несовместимый дистрибутив вызывает ошибку.
Чтобы обойти несовместимость, задайте переменную os_configure_distribution — её значение подменяет автоматически определённый дистрибутив. Например, для дистрибутива, близкого к CentOS, можно задать os_configure_distribution: centos: роль выполнит задачи для CentOS, а не прервётся с ошибкой о неподдерживаемом дистрибутиве.
- hosts: allroles:- role: tarantool.enterprise.os_configure
Вызов проверки ОС:
- hosts: allroles:- role: tarantool.enterprise.os_configuretasks_from: check/main.ymlvars:os_configure_ignore_check_failure: true
Роль управления systemd-юнитами экземпляров Tarantool: создание, удаление, запуск, остановка, перезапуск, расширение unit-файлов, управление переопределением переменных окружения.
Перед выполнением действий роль определяет директорию systemd и пользователя по переменной systemd_scope: при user — пользовательская директория (~/.config/systemd/user) и пользователь tarantool, при system — системная директория (/etc/systemd/system) и пользователь root.
Выполняемые действия задаются списком systemd_actions:
Действие | Описание |
|---|---|
| Создать unit-файл. |
| Удалить unit-файл. |
| Запустить юнит. |
| Остановить юнит. |
| Перезапустить юнит. |
| Отключить юнит. |
| Перезагрузить конфигурацию systemd. |
| Расширить unit-файл дополнительными секциями. |
| Удалить расширение unit-файла. |
| Установить переопределение переменной окружения. |
| Удалить переопределение переменной окружения. |
Переменная | Описание |
|---|---|
| Имя unit-файла. Обязательна. |
| Область systemd: |
| Список действий над systemd-юнитом. Обязательна. |
| Целевой target |
- hosts: allroles:- role: tarantool.enterprise.systemdvars:systemd_unit_name: 'tarantool@{{ inventory_hostname }}'systemd_actions:- restart
Роль настройки ротации журналов экземпляров через logrotate. Формирует общую конфигурацию logrotate и отдельные конфигурации для журналов каждого экземпляра — журналов Tarantool, журналов аудита и журналов отказоустойчивости (при наличии соответствующих секций в конфигурации экземпляра).
- hosts: allroles:- role: tarantool.enterprise.logrotate
Роль настройки задач cron для очистки устаревших резервных копий. Роль не имеет файла main.yml — конкретная задача cron выбирается через tasks_from.
Доступные задачи:
Задача | Описание |
|---|---|
| Создаёт задачу cron, удаляющую резервные копии старше |
| Создаёт задачу cron, оставляющую не более |
Переменная | Описание |
|---|---|
| Периодичность запуска задачи cron (значение |
| Срок хранения резервных копий в днях (для задачи |
| Количество последних резервных копий для хранения (для задачи |
- hosts: allroles:- role: tarantool.enterprise.crontabtasks_from: backup_cleanup_time.yml
Роль удаления экземпляров Tarantool. Полностью очищает хост от экземпляров: останавливает и удаляет systemd-юниты (экземпляров, координаторов отказоустойчивости, серверов GRPC-API), удаляет символические ссылки, директории кластера и ключи хранилища конфигурации.
Удаление директорий и systemd-юнитов выполняется один раз на физическую машину. Очистка ключей etcd выполняется один раз для кластера при tarantool_config_storage=etcd.
Роль также поддерживает удаление компонентов Tarantool Enterprise через теги: tcf, tcm, tcs — соответствующие задачи удаления вызываются при наличии тега в ansible_run_tags.
- hosts: allroles:- 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