2.15. Приложение

2.15. Приложение

2.15.1. Скрипт tdgctl.py

Скрипт tdgctl.py позволяет развернуть приложение в кластере и выполнить ряд операций по его администрированию. В репозитории скрипт находится в tdg/tree/master/deploy/.

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

2.15.1.1. Общий формат

tdgctl.py [-h] [-c <файл_конфига>] [-v] <команда> [<опции>]

Команды:

  • deploy — развертывание (deployment) инстансов;

  • rm — удаление всех инстансов;

  • logs — выгрузка логов всех инстансов;

  • backup — резервное копирование данных всех инстансов;

  • restore — восстановление данных из резервных копий;

  • stop — остановка всех инстансов;

  • start — старт всех инстансов.

Опции, общие для всех команд (далее в описании конкретных команд не упоминаются):

- h, -- help — вывод подсказки по использованию скрипта.

- c <файл_конфига>, -- config <файл_конфига> — передает скрипту файл конфигурации кластера в формате JSON. Если опция не указана, скрипт ищет по умолчанию файл с именем config.json в той же директории, где находится скрипт.

- v, -- verbose — вывод полного лога работы команды.

2.15.1.2. deploy

Используется для развертывания инстансов.

Формат:

tdgctl.py deploy [-f] [-r] <файл_образа>

где

<файл_образа> — путь к файлу с образом установки в формате tar-архива.

- f, -- force — опция принудительной повторной установки (force re-deploy) на существующем кластере. Будет обновлена только функциональная часть, данные будут сохранены.

- r, -- roles — опция установки приложения в кластере с назначением ролей для инстансов. Для работы с этой опцией в файле конфигурации кластера должны быть указаны роли для каждого из инстансов. Например:

 "servers":
 [
     {
         "address": "172.19.0.2",
         "username": "admin",
         "instances":
         [
             {
                 "name": "core_1",
                 "binary_port": 3000,
                 "http_port": 8080,
                 "memory_mb": 128
                 "roles": ["connector", "input_processor"]
             },
             {
                 "name": "storage_1",
                 "binary_port": 3001,
                 "http_port": 8081,
                 "memory_mb": 1024
                 "roles": ["storage"]
             },

2.15.1.3. rm

Используется для удаления всех инстансов кластера. Также будут удалены все данные.

Формат:

tdgctl.py rm [-y]

где

-y, --yes — опция удаления без запроса подтверждения.

2.15.1.4. logs

Используется для выгрузки логов всех инстансов кластера.

Формат:

tdgctl.py logs [-d N]

где

-d N, --days N — опция выгрузки логов не старше N дней.

Для каждого из инстансов кластера формируется файл лога с именем <instance_name>.log. При старте команды создается директория вида logs.yyyy-mm-ddThh:mm:ssZ, куда складываются все файлы логов, сформированные при данном выполнении команды (yyyy-mm-ddThh:mm:ssZ — дата и время на момент запуска команды).

2.15.1.5. backup

Используется для резервного копирования данных со всех инстансов.

Формат:

tdgctl.py backup [-c]

где

-c, --clear — опция очистки директории для резервных данных перед началом резервного копирования.

Резервные данные сохраняются отдельно для каждого из инстансов в директории /var/lib/tarantool/<instance_name>.checkpoint/.

В качестве резервных данных система сохраняет следующие файлы для каждого из инстансов:

2.15.1.6. restore

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

Формат:

tdgctl.py restore

2.15.1.7. stop

Используется для остановки всех инстансов.

Формат:

tdgctl.py stop

2.15.1.8. start

Используется для старта всех инстансов.

Формат:

tdgctl.py start