Настройка окружения
Плейбуки для подготовки операционной системы и серверов к развёртыванию Tarantool: настройка системных лимитов и параметров ядра, подготовка пользователей и директорий, ротация журналов, управление systemd-юнитами.
Плейбук для настройки операционной системы под установку Tarantool.
Определяет дистрибутив ОС (через модуль collect_distribution), проверяет совместимость с коллекцией и выполняет дистрибутивоспецифичные задачи: создаёт директорию пользовательских systemd-юнитов и шаблоны unit-файлов для экземпляров Tarantool 3.0 (отдельно — для координаторов отказоустойчивости и серверов GRPC-API TQE).
Запуск через коллекцию:
ansible-playbook -i ${PATH_TO_INVENTORY} \--user ${SUPER_USER_NAME} \-e ansible_ssh_private_key_file=${PATH_TO_PRIVATE_KEY} \playbooks/os_configure.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/os_configure.yml --limit ${LIMIT}
Плейбук для предустановочной подготовки серверов. Выполняется один раз на каждой физической машине (дублирующие экземпляры на одном сервере обрабатываются однократно).
Подготовка включает:
- создание пользователя и группы
tarantool; - создание директорий Tarantool (базовая, журналов, снимков состояния, core-дампов);
- настройку ресурсных лимитов пользователя
tarantool(PAM или systemd); - настройку параметров ядра (
vm.overcommit_memory,vm.overcommit_ratio,kernel.core_uses_pid,kernel.core_pattern,net.ipv4.ip_local_port_range); - включение постоянного хранилища journald;
- дистрибутивоспецифичную подготовку ОС.
Запуск через коллекцию:
ansible-playbook -i ${PATH_TO_INVENTORY} \--user ${SUPER_USER_NAME} \-e ansible_ssh_private_key_file=${PATH_TO_PRIVATE_KEY} \playbooks/env_prepare.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/env_prepare.yml --limit ${LIMIT}
Плейбук для предустановочной проверки серверов. Выполняется один раз на каждой физической машине.
Проверяет настройки Tarantool, параметры ядра, конфигурацию journald и дистрибутивоспецифичные требования. Найденные несоответствия собираются в единый список и выводятся по завершении.
Переменная | Описание |
|---|---|
| Не прерывать выполнение при обнаружении ошибок проверки. Значение по умолчанию: |
Запуск через коллекцию:
ansible-playbook -i ${PATH_TO_INVENTORY} \--user ${SUPER_USER_NAME} \-e ansible_ssh_private_key_file=${PATH_TO_PRIVATE_KEY} \playbooks/env_check.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/env_check.yml --limit ${LIMIT}
Плейбук для настройки ротации журналов экземпляров через logrotate.
Плейбук выполняется только при включённой переменной tarantool_configure_logrotate (по умолчанию включена). Настраивает ротацию для журналов Tarantool, журналов аудита и журналов отказоустойчивости (при наличии соответствующих секций в конфигурации экземпляра).
Переменная | Описание |
|---|---|
| Включить настройку ротации журналов через logrotate. Значение по умолчанию: |
Запуск через коллекцию:
ansible-playbook -i ${PATH_TO_INVENTORY} \--user ${SUPER_USER_NAME} \-e ansible_ssh_private_key_file=${PATH_TO_PRIVATE_KEY} \playbooks/logrotate.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/logrotate.yml --limit ${LIMIT}
Плейбук для управления systemd-юнитами экземпляров Tarantool: создание, удаление, запуск, остановка, перезапуск, расширение unit-файлов, управление переопределением переменных окружения.
Список действий и имя unit-файла передаются через переменные systemd_actions и systemd_unit_name.
Доступные действия:
Действие | Описание |
|---|---|
| Создать unit-файл. |
| Удалить unit-файл. |
| Запустить юнит. |
| Остановить юнит. |
| Перезапустить юнит. |
| Отключить юнит. |
| Перезагрузить конфигурацию systemd. |
| Расширить unit-файл дополнительными секциями. |
| Удалить расширение unit-файла. |
| Установить переопределение переменной окружения. |
| Удалить переопределение переменной окружения. |
Обязательные:
Переменная | Описание |
|---|---|
| Список действий над systemd-юнитом. |
| Имя unit-файла. |
Запуск через коллекцию (перезапуск экземпляра):
ansible-playbook -i ${PATH_TO_INVENTORY} \--user ${SUPER_USER_NAME} \-e ansible_ssh_private_key_file=${PATH_TO_PRIVATE_KEY} \-e systemd_unit_name='tarantool@${INSTANCE_NAME}' \-e 'systemd_actions=["restart"]' \playbooks/systemd.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}'","systemd_unit_name":"tarantool@'"${INSTANCE_NAME}"'","systemd_actions":["restart"]}' \playbooks/systemd.yml --limit ${LIMIT}