Перейти к содержанию

Аргументы командной строки

Picodata является консольным приложением, которое поддерживает различные параметры запуска в виде аргументов командной строки.

Полный список аргументов доступен с помощью команды picodata help:

USAGE:
    picodata <SUBCOMMAND>

OPTIONS:
    -h, --help       Print help information
    -V, --version    Print version information

SUBCOMMANDS:
    connect      Сonnect a Picodata instance and start interactive Lua console
    expel        Expel node from cluster
    help         Print this message or the help of the given subcommand(s)
    run          Run the picodata instance
    tarantool    Run tarantool
    test         Run picodata integration tests

В общем случае после picodata следует указать название команды и затем, опционально, параметры:

picodata <command> [<params>]

Команда run

Запускает инстанс (экземпляр) Picodata.

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

picodata run [Параметры]

Параметры

--advertise <[host][:port]>
Адрес, по которому другие инстансы смогут подключиться к данному инстансу. По умолчанию используется значение из аргумента --listen. Аналогичная переменная окружения: PICODATA_ADVERTISE.

cluster-id

--cluster-id <name>
Имя кластера. Инстанс не сможет стать частью кластера, если у него указано другое имя. Аналогичная переменная окружения: PICODATA_CLUSTER_ID.

console-sock

--console-sock <path>
Путь к файлу сокета, который впоследствие можно использовать для подключения с помощью команды picodata connect --unix. В отличие от подключения к адресу, указанному в параметре --listen, данный способ использует обычный текстовый протокол и привилегии администратора. Аналогичная переменная окружения: PICODATA_CONSOLE_SOCK.

audit

--audit <file>
Файл журнала. Данный параметр включает запись событий инстанса в журнал аудита. В качестве журнала может быть указан:

  • обычный полный или относительный путь к файлу (/var/audit.log / audit.log)
  • перенаправление на внешний обработчик, указанный после вертикального слеша (| /usr/bin/name-goes-here -v ...)
  • перенаправление на службу syslog защищенной ОС (syslog:)

Аналогичная переменная окружения: PICODATA_AUDIT_LOG

data-dir

--data-dir <path>
Директория, в которой инстанс будет сохранять свои данные для постоянного хранения. Аналогичная переменная окружения: PICODATA_DATA_DIR.

failure-domain

--failure-domain <key=value>
Список параметров географического расположения сервера (через запятую). Также этот аргумент называется зоной доступности. Каждый параметр должен быть в формате КЛЮЧ=ЗНАЧЕНИЕ. Также, следует помнить о том, что добавляемый инстанс должен обладать тем же набором доменов (т.е. ключей данного аргумента), которые уже есть в кластере. Picodata будет избегать помещения двух инстансов в один репликасет, если хотя бы один параметр зоны доступности у них совпадает. Соответственно, инстансы будут формировать новые репликасеты. Аналогичная переменная окружения: PICODATA_FAILURE_DOMAIN.

help

-h, --help
Вывод справочной информации.

http-listen

--http-listen <[host][:port]>
Адрес, на котором будет доступен запущенный HTTP-сервер. Для работы с API маршрутизации в Lua следует использовать переменную _G.pico.httpd. Сервер будет запущен только при явном указании --http-listen с корректным адресом.
Аналогичная переменная окружения: PICODATA_HTTP_LISTEN.

interactive

-i, --interactive
Запуск интерактивной консоли.
Аналогичная переменная окружения: PICODATA_INTERACTIVE_MODE.

init-replication-factor

--init-replication-factor <INIT_REPLICATION_FACTOR>
Число реплик (инстансов с одинаковым набором хранимых данных) для каждого репликасета. Данный параметр не может использоваться одновременно с init-cfg. Аналогичная переменная окружения: PICODATA_INIT_REPLICATION_FACTOR.

instance-id

--instance-id <name>
Название инстанса. Если этот аргумент не указать, то название будет сгенерировано автоматически. Данный аргумент удобно использовать для явного указания инстанса при его перезапуске (например, в случае его недоступности или при переносе в другую сеть). Аналогичная переменная окружения: PICODATA_INSTANCE_ID.

listen

-l, --listen <[host][:port]>
Адрес и порт привязки инстанса. По умолчанию используется localhost:3301 Аналогичная переменная окружения: PICODATA_LISTEN.

log-level

--log-level <LOG_LEVEL>
Уровень регистрации событий. Возможные значения: fatal, system, error, crit, warn, info, verbose, debug. По умолчанию используется уровень info. Аналогичная переменная окружения: PICODATA_LOG_LEVEL.

peer

--peer <[host][:port]>
Один или несколько адресов других инстансов (через запятую). По умолчанию используется значение localhost:3301. Указание порта опционально. Аналогичная переменная окружения: PICODATA_PEER.

replicaset-id

--replicaset-id <name>
Имя репликасета. Аналогичная переменная окружения: PICODATA_REPLICASET_ID

script

--script <path>
Путь к файлу Lua-скрипта, который будет выполнен после присоединения инстанса к кластеру. Аналогичная переменная окружения: PICODATA_SCRIPT.

init-cfg

--init-cfg <path>
Относительный или абсолютный путь к конфигурационному файлу. Данный параметр не может использоваться одновременно с init-replication-factor. Аналогичная переменная окружения: PICODATA_INIT_CFG.

tier

--tier <tier>
Название тира которому будет принадлежать инстанс. Аналогичная переменная окружения: PICODATA_INSTANCE_TIER.

Команда connect

Подключается к указанному инстансу и открывает интерактивную консоль

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

picodata connect [Параметры] <Аргументы>

Аргументы

ADDRESS: Адрес инстанса Picodata в формате [user@][host][:port].

Параметры

  • -a, --auth_type <METHOD>, тип аутентификации. По умолчанию используется chap-sha1, также доступны md5 и ldap.
  • -h, --help, вывод справки о команде connect.
  • -u, --user <USER>, пользователь, под которым будет инициировано подключение. Если пользователь указан в рамках <ADDRESS> (например, user@localhost:3301), то параметр --user будет проигнорирован. Если пользователя не указывать, то будет использован пользователь по умолчанию (guest).
  • --password-file, путь к файлу с паролем указанного пользователя (хранится в виде обычного текста). Без этого параметра пароль будет запрошен в интерактивном режиме. Путь к файлу пароля можно также передать через переменную окружения PICODATA_PASSWORD_FILE.
  • --unix, подключение к файлу сокета. С этим параметром обязательный аргумент
    интерпретируется как путь до сокета (путь может быть как относительным, так и абсолютным).

Пример

picodata connect localhost:3301

Подключение под определенным пользователем

picodata connect --user user_name localhost:3301

Передача пароля в файле

picodata connect --user user_name --password-file ~/vault/user_name_pass.txt localhost:3301

Путь к файлу пароля может быть как относительным, так и абсолютным.

Команда tarantool

Запускает Tarantool и открывает его консоль.

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

picodata tarantool [Параметры]

Параметры

  • -h, --help, вывод справки о команде tarantool.

Команда expel

Исключает инстанс Picodata из состава кластера.

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

picodata expel [Параметры]

Параметры

  • --cluster-id <name>, имя кластера, из которого должен быть исключен инстанс (по умолчанию это demo).
  • -h, --help, вывод справки о команде expel.
  • --instance-id <name>, имя инстанса, который следует исключить (без указания имени expel не имеет силы).
  • --peer <[host][:port]>, адрес любого инстанса из состава кластера (по умолчанию это localhost:3301).

Сценарии применения команд

Ниже приведены типовые ситуации и подходящие для этого команды.

  1. На хосте с инстансом i4 вышел из строя жесткий диск, данные инстанса утрачены, сам инстанс неработоспособен. Какой-то из оставшихся инстансов доступен по адресу 192.168.104.55:3301.

    picodata expel --instance-id i4 --peer 192.168.104.9:3301

  2. В кластере mycluster из 3-х инстансов, где каждый работает на своем физическом сервере, происходит замена одного сервера. Выключать инстанс нельзя, так как оставшиеся 2 узла кластера не смогут создать стабильный кворум. Поэтому сначала в сеть добавляется дополнительный сервер:

    picodata run --instance-id i4 --peer 192.168.104.1 --cluster-id mycluster

    Далее, если на сервере с инстансом i3 настроен автоматический перезапуск Picodata в Systemd или как-либо иначе, то его нужно предварительно отключить. После этого c любого из уже работающих серверов кластера исключается инстанс i3:

    picodata expel --instance-id i3 --cluster-id mycluster

    Указанная команда подключится к 127.0.0.1:3301, который самостоятельно найдет лидера кластера и отправит ему команду на исключение инстанса i3. Когда процесс picodata на i3 завершится — сервер можно выключать.

Подробнее об устройстве кластера и репликасетов Picodata см. в разделе Запуск кластера.