2.17. Скрипт tdgctl.py

2.17. Скрипт tdgctl.py

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

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

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

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

Команды:

  • deploy – развертывание инстансов;
  • upgrade – функциональное обновление инстансов;
  • rm – удаление инстансов;
  • logs – выгрузка логов инстансов;
  • backup – резервное копирование инстансов;
  • restore – восстановление данных из резервных копий;
  • stop – остановка инстансов;
  • start – старт инстансов.

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

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

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

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

Примечание

Каждая из команд применяется только к тем инстансам, которые указаны в файле конфигурации, передаваемом через опцию -c.

2.17.2. deploy

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

Формат:

tdgctl.py deploy [-f] [-r] <файл_дистрибутива>

где

  • <файл_дистрибутива> – путь к файлу дистрибутива установки в формате архива tar.gz.
  • -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.17.3. upgrade

Используется для функционального обновления инстансов.

Формат:

tdgctl.py upgrade [-f] <файл_дистрибутива>

где

  • <файл_дистрибутива> – путь к файлу дистрибутива установки в формате архива tar.gz.
  • -f, --force – опция принудительной установки. Обновляется функциональная часть; данные инстансов сохраняются.

2.17.4. rm

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

Формат:

tdgctl.py rm [-y]

где

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

2.17.5. 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.17.6. backup

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

Формат:

tdgctl.py backup [-c]

где

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

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

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

2.17.7. restore

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

Формат:

tdgctl.py restore

2.17.8. stop

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

Формат:

tdgctl.py stop [--backup]

где

--backup —- опция для выполнения резервного копирования (box.snapshot()).

2.17.9. start

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

Формат:

tdgctl.py start