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

Настройка среды

Требования к серверу под инсталлятор

Сервером под инсталлятор может служить:

  • отдельностоящий сервер, или
  • один из серверов под Tarantool, или
  • агент CI/CD системы.

Требования к серверу под инсталлятор:

  • Операционная система RHEL, AstraLinux, Red OS или аналогичная с поддержкой Docker.
  • Доступ по 22 порту (SSH) для devops-инженера.
  • Сетевой доступ по 22 порту (SSH) до всех серверов, на которые производится установка. В том числе до серверов под ETCD, nginx и других сервисов.

Если предполагается использовать Docker-образ инсталлятора, установите:

  • Docker Engine версии не ниже 20.10.11.

Если предполагается использовать Ansible-коллекцию инсталлятора, установите:

  • Python 3.12 или новее.
  • Ansible 2.19.0 или новее.
  • pip модули urllib3 (2.7.0 или новее) и requests (2.34.0 или новее).

Подготовка к использованию

Перед запуском сценариев развертывания подготовьте:

  • Инвентарь — описание топологии вашего решения и настроек приложения или продукта.
  • Пользователя для подключения к серверам по SSH. Может быть root. Должен иметь sudo-права на логин под локального пользователя tarantool.
  • Приватный SSH-ключ пользователя для подключения к серверам.
  • Архив с продуктом или приложением.

Примеры инвентарей для продуктов линейки Tarantool Enterprise приведены в разделе Примеры инвентарей.

Предварительная настройка сервера под Tarantool

Для развертывания продуктовой линейки Tarantool необходима предварительная настройка серверов. В Ansible Tarantool Enterprise, начиная с версии 1.3.0, появились сценарии для проверки и первоначального конфигурирования.

Список дальнейших действий, которые производятся на серверах по необходимости:

  • Создание группы и пользователя tarantool.
  • Изменение Unix-лимитов для пользователя tarantool.
    • Max processes: soft - 64000, hard - 64000
    • Max open files: soft - 64000, hard - 64000
    • Max core file size: soft - unlimited, hard - unlimited
  • Создание директорий для работы Tarantool (/app/tarantool, /app/logs, /app/snap, /app/tarantool/coredump) и настройка прав для них.
  • Включение lingering для пользователя tarantool (команда loginctl enable-linger tarantool).
  • Настройка параметров ядра:
    • vm.overcommit_memory = 2
    • vm.overcommit_ratio = 100
    • kernel.core_uses_pid = 1
    • kernel.core_pattern = /app/tarantool/coredump/core-%e-%u-%g-%p-%t
    • net.ipv4.ip_local_port_range = 32768 60999
  • Создание каталога /var/log/journal.
  • Включение постоянного хранения для журнала journald путем добавления строки Storage=persistent в файл /etc/systemd/journald.conf.
  • Установка дополнительных пакетов: cron/cronie (в зависимости от дистрибутива), logrotate, gdb, telnet.
  • Включение службы systemd-logind.
  • Добавление пользователя tarantool в группу crontab (для AstraLinux).
  • Установка Python-модуля PyYAML (для AstraLinux, MosOS и Red OS).

Проверка сервера перед развертыванием

Используйте сценарий env_check.yml. Он выполнит проверку и в результате предоставит список найденных несоответствий.

Проверка лимитов пользователя tarantool будет выполняться только под пользователем root. Для этого переменная tarantool_shared_become_user должна быть root.

Запустить сценарий можно без топологии приложения, с простейшим инвентарём.

Пример 1: Обычный запуск проверки с использованием Ansible-коллекции

ansible-playbook -i inventory.ini \    --extra-vars '{        "ansible_ssh_private_key_file":"/ansible/.ssh/id_private_key",        "super_user":"'${SUPER_USER_NAME}'",        "tarantool_shared_become_user":"'${SUPER_USER_NAME}'",    }' \    playbooks/env_check.yml

Пример 2: Обычный запуск проверки с использованием 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}'",        "tarantool_shared_become_user":"'${SUPER_USER_NAME}'",    }' \    playbooks/env_check.yml

Пример 3: Запуск проверки под пользователем root c использованием 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}'",        "tarantool_shared_become_user":"root",    }' \    playbooks/env_check.yml

Сценарий первичной настройки

Чтобы запустить сценарий подготовки сервера, выполните следующие команды:

Пример 1: Запуск подготовки с использованием Ansible-коллекции

ansible-playbook -i inventory.ini \    --extra-vars '{        "ansible_ssh_private_key_file":"/ansible/.ssh/id_private_key",        "super_user":"'${SUPER_USER_NAME}'",        "tarantool_shared_become_user":"root",    }' \    playbooks/env_prepare.yml

Пример 2: Запуск подготовки с использованием 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}'",        "tarantool_shared_become_user":"root",    }' \    playbooks/env_prepare.yml

где:

  • ansible_ssh_private_key_file -- путь к закрытому ключу SSH для аутентификации.
  • super_user -- имя пользователя, для подключения по SSH и переключения на пользователя root.
  • tarantool_shared_become_user -- root.

Использование тегов

Сценарии проверки и настройки разбиты на ряд блоков. С помощью Ansible-тегов можно выбирать, какие из блоков необходимо запустить:

  • tarantool -- задачи по настройке пользователя и директорий Tarantool.
  • kernel -- управление параметрами ядра.
  • journald -- настройка журналирования системы.
  • os -- особенности операционной системы.

Пример 1: Выполнить только задачи с тегом tarantool

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}'",        "tarantool_shared_become_user":"'${SUPER_USER_NAME}'",    }' \    --tags tarantool \    playbooks/env_check.yml

Пример 2: Пропустить выполнение задач с тегом kernel

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}'",        "tarantool_shared_become_user":"'${SUPER_USER_NAME}'",    }' \    --skip-tags kernel \    playbooks/env_prepare.yml

Пример 3: Выполнить только задачи с тегами tarantool и kernel

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}'",        "tarantool_shared_become_user":"'${SUPER_USER_NAME}'",    }' \    --tags tarantool,kernel \    playbooks/env_prepare.yml
Была ли статья полезна?