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

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

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

Далее рассмотрена процедура установки TDG версии 1.5.0 или выше.

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

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

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

Примечание

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

Для упрощения процедур тестового развёртывания в составе дистрибутива находится директория deploy, содержащая:

  • скрипт для развёртывания и управления кластером tdgctl.py;
  • примеры конфигураций кластера;
  • файл README.md с краткими инструкциями по установке;
  • файл Vagrantfile для автоматизации создания тестового окружения для развёртывания кластера;
  • файл VAGRANT.md с краткими инструкциями по установке сборке, развёртыванию и установке кластера TDG.

Основные требования к серверам, на которых будет производиться установка:

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

    admin ALL=(ALL:ALL) NOPASSWD: ALL
    
  2. Должен быть включён ssh-сервер.

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

  4. Для работы скрипта tdgctl.py требуется наличие на ПК, откуда он будет запускаться, Python 3 и библиотек fabric и requests:

    pip3 install fabric requests
    

2.1.2. Установка

Для установки вам понадобится дистрибутив TDG в формате rpm пакета или tar.gz архива.

Важно

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

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

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

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

Запросить доступ к дистрибутивам TDG вы можете обратившись через форму обратной связи или по адресу электронной почты sales@tarantool.io.

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

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

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

{
    "general":
    {
        "cluster_cookie": "ilikerandompasswords"
    },
    "servers":
    [
        {
            "address": "172.19.0.2",
            "username": "vagrant",
            "instances":
            [
                {
                    "name": "core_1",
                    "binary_port": 3000,
                    "http_port": 8080,
                    "memory_mb": 128,
                    "is_master": true,
                },
                {
                    "name": "notifier",
                    "binary_port": 3001,
                    "http_port": 8081,
                    "memory_mb": 128,
                    "is_master": true
                },
                {
                    "name": "storage_1",
                    "binary_port": 3002,
                    "http_port": 8082,
                    "memory_mb": 1024,
                    "is_master": true
                },
                {
                    "name": "storage_2",
                    "binary_port": 3003,
                    "http_port": 8083,
                    "memory_mb": 1024,
                    "is_master": true
                }
            ]
        },
        {
            "address": "172.19.0.3",
            "username": "vagrant",
            "instances":
            [
                {
                    "name": "core_2",
                    "binary_port": 3004,
                    "http_port": 8084,
                    "memory_mb": 128,
                    "is_master": true
                },
                {
                    "name": "storage_1_replica",
                    "binary_port": 3005,
                    "http_port": 8085,
                    "memory_mb": 1024
                },
                {
                    "name": "storage_2_replica",
                    "binary_port": 3006,
                    "http_port": 8086,
                    "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» и т.д.).