2. Руководство по эксплуатации / 2.1. Установка и запуск приложения
2. Руководство по эксплуатации / 2.1. Установка и запуск приложения

2.1. Установка и запуск приложения

2.1. Установка и запуск приложения

Процедура установки и запуска приложения в кластере включает в себя следующие этапы:

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

Система TDG поддерживает операционные системы Red Hat Enterprise Linux и CentOS версий 7.5 и выше.

Примечание

Приложение может быть запущено на других Linux-дистрибутивах, основанных на systemd, но не тестируется на них и может не соответствовать заявленной функциональности.

  1. Пользователь, под которым будет происходить установка, должен иметь привилегии root. Также нужно отключить для него запрос пароля в файле /etc/sudoers:

    admin ALL=(ALL:ALL) NOPASSWD: ALL
    
  2. Необходимо включить ssh-сервер.

  3. Должен быть загружен публичный ключ администратора для доступа на машину по ssh-протоколу.

  4. Для работы скрипта установки требуется Python 3 и библиотека fabric:

    pip3 install fabric
    

2.1.2. Установка

Важно

В этом разделе приводится один из вариантов установки приложения. О других вариантах см. документацию по Tarantool Enterprise.

2.1.2.1. Дистрибутив установки

Загрузите актуальный дистрибутив для установки приложения.

Нам потребуется образ установки в формате tar-архива: tdg-<version>.tar.gz, где <version> — версия релиза.

2.1.2.2. Подготовка файла конфигурации кластера

Для установки приложения на серверы также требуется подготовить файл конфигурации кластера в формате JSON.

Рассмотрим структуру и параметры файла на примере:

{
    "general":
    {
        "cluster_cookie": "some_secret_cookie"
    },
    "servers":
    [
        {
            "address": "172.19.0.2",
            "username": "vagrant",
            "instances":
            [
                {
                    "name": "input_processor",
                    "binary_port": 3000,
                    "http_port": 8080,
                    "memory_mb": 128
                },
                {
                    "name": "logger_etc",
                    "binary_port": 3001,
                    "http_port": 8081,
                    "memory_mb": 128
                },
                {
                    "name": "storage_1",
                    "binary_port": 3002,
                    "http_port": 8082,
                    "memory_mb": 1024
                },
                {
                    "name": "storage_2_replica",
                    "binary_port": 3003,
                    "http_port": 8083,
                    "memory_mb": 1024
                }
            ]
        },
        {
            "address": "172.19.0.3",
            "username": "vagrant",
            "instances":
            [
                {
                    "name": "storage_2",
                    "binary_port": 3004,
                    "http_port": 8084,
                    "memory_mb": 1024
                },
                {
                    "name": "storage_1_replica",
                    "binary_port": 3005,
                    "http_port": 8085,
                    "memory_mb": 1024
                }
            ]
        }
    ]
}

Здесь указан массив серверов servers, на которые будет происходить установка. Для каждого сервера нужно указать:

  • username — имя пользователя, от которого будет происходить установка;

  • address — адрес сервера;

  • instances — список устанавливаемых инстансов.

Для каждого инстанса задается имя name. При установке на физические Linux-сервера это будет имя юнита systemd. Для каждого инстанса указана пара портов — binary_port и http_port, которые должны быть открыты на сервере для взаимодействия инстансов. http_port требует протокола TCP, а binary_port — как TCP, так и UDP.

Параметр memory_mb ограничивает потребление памяти Tarantool внутри инстанса и задается в мегабайтах.

В параметре cluster_cookie задается токен кластера, который необходим для того, чтобы члены кластера могли общаться между собой и при этом не допустить попадание в кластер постороннего члена.

Все перечисленные параметры обязательны.

2.1.2.3. Запуск скрипта установки

Для установки системы используется скрипт tdgctl.py. См. подробнее о формате команд скрипта.

При запуске скрипта нужно указать команду deploy и передать аргументами путь к файлу с конфигурацией кластера и файлу с образом установки:

./tdgctl.py -c deploy.json deploy <image_name>.tar.gz

где deploy.json — файл с конфигурацией кластера, <image_name>.tar.gz — файл с образом установки.

После этого скрипт подключится к серверам по списку, загрузит образ и запустит инстансы.

Скрипт tdgctl.py также позволяет выполнять другие операции в кластере, такие как остановка и старт инстансов, удаление инстансов, сбор логов и др.

2.1.3. Директории по умолчанию

Рабочие директории {workdir} по умолчанию, в которых сохраняются данные для каждого инстанса: /var/lib/tarantool/<instance_name>, где <instance_name> — имя инстанса, определенное в файле конфигурации кластера (в нашем примере — «core», «storage_1» и т.д.).