Интерфейс командной строки CLI
Интерфейс командной строки (CLI, Command Line Interface) предназначен для администрирования сервера IVA Mail без использования веб-интерфейса панели администратора.
CLI используется для:
-
выполнения административных команд;
-
настройки сервера, доменов, аккаунтов и модулей;
-
автоматизации повторяющихся операций;
-
диагностики состояния сервера;
-
работы со справочником, очередями, сессиями, правилами и другими объектами;
-
выполнения операций, которые удобнее запускать из скриптов.
CLI работает через модуль CMD. Подключение выполняется по TCP-соединению.
По умолчанию используется порт 106.
| CLI IVA Mail не является командной оболочкой операционной системы. Это административный интерфейс сервера IVA Mail, доступный через модуль CMD. |
Особенности CLI
Особенности CLI:
-
команды выполняются напрямую сервером IVA Mail;
-
команды не являются командами ОС Linux;
-
большинство операций возвращает JSON-структуры;
-
команды могут использовать имена объектов или UID объектов;
-
часть команд изменяет параметры сервера и объектов;
-
команды могут использоваться в автоматизации и скриптах.
Подключение к CLI
Для подключения к CLI выполните команду на сервере, где установлен IVA Mail:
telnet 127.0.0.1 106
После успешного подключения выполните аутентификацию:
auth login [login] [password]
где:
| Параметр | Описание |
|---|---|
|
Логин аккаунта администратора сервера. |
|
Пароль аккаунта администратора сервера. |
Пример:
auth login postmaster admin
| При первой аутентификации используйте данные аккаунта администратора, созданного при первоначальной установке сервера. |
CLI и CMD
CLI и CMD относятся к разным уровням системы.
| Термин | Описание |
|---|---|
CLI |
Интерфейс командной строки, через который администратор вводит команды. |
CMD |
Серверный модуль IVA Mail, который принимает CLI-подключения и выполняет административные команды. |
То есть администратор работает с CLI, а сервер обрабатывает эти команды через модуль CMD.
Когда использовать CLI
CLI рекомендуется использовать в следующих случаях:
| Сценарий | Когда полезно использовать CLI |
|---|---|
Массовые операции |
Создание или изменение большого количества доменов, аккаунтов, групп или настроек. |
Автоматизация |
Выполнение команд из скриптов или систем автоматизации. |
Диагностика |
Получение информации о соединениях, потоках выполнения, очередях, журналах и состоянии модулей. |
Аварийное администрирование |
Работа с сервером при недоступности веб-интерфейса. |
Настройка через шаблоны |
Изменение параметров модулей, доменов, аккаунтов и профилей через JSON-структуры. |
Интеграция |
Выполнение административных операций из внешних систем. |
Формат команд
Команда передается строкой без кавычек.
После имени команды через пробел указываются параметры.
Общий вид команды:
CommandName parameter1 parameter2 parameter3
Параметры передаются как текстовые представления JSON-объектов.
Например:
ModuleSetLogLevel "IMAP" 0
или:
DomainSetSetting "example.org" "Limits.MaxMessageSize" 10485760
Формат ответов
После выполнения команды сервер возвращает код результата.
Пример успешного ответа без данных:
204 OK
Некоторые команды возвращают данные:
DomainsList
200 OK
{
"/N 3": "admin.dom",
"/N 58": "example.org"
}
Команды, изменяющие состояние объекта, могут возвращать только код успешного выполнения.
Необязательные параметры
Необязательные параметры в описании команд указываются в круглых скобках:
ConnectionsList ("module_name" ("filter"))
Это означает, что команда может быть вызвана:
ConnectionsList
или с именем модуля:
ConnectionsList "IMAP"
или с именем модуля и фильтром:
ConnectionsList "IMAP" "127.0.0.1"
Альтернативные значения параметров
Если параметр может принимать несколько вариантов, они указываются через вертикальную черту |.
Например:
DomainRemove "string"|domainUID
Это означает, что домен можно указать:
-
по имени;
-
по числовому идентификатору UID.
Примеры:
DomainRemove "example.org"
DomainRemove 57
UID объектов
UID — это числовой идентификатор объекта.
UID используется для точного обращения к объекту, если:
-
имя объекта изменилось;
-
у объекта есть несколько имен;
-
нужно исключить неоднозначность;
-
команда поддерживает обращение как по имени, так и по UID.
Пример получения UID домена по имени:
DomainGetID "example.org"
200 OK
57
Пути к настройкам
Для обращения к вложенным настройкам можно использовать два варианта записи.
Вариант 1 — массив ключей:
["key1","key2","key3"]
Вариант 2 — строка с точечной нотацией:
"key1.key2.key3"
Обе записи могут использоваться для указания пути к настройке модуля или объекта.
Пример:
ModuleGetSetting "SMTPI" "Listener.MaxConnectionsPerAddress"
или:
ModuleGetSetting "SMTPI" ["Listener","MaxConnectionsPerAddress"]
Работа с JSON
Некоторые команды принимают или возвращают JSON-объекты.
JSON используется для:
-
передачи сложных настроек;
-
обновления конфигурации;
-
работы со списками;
-
описания объектов;
-
передачи параметров правил, профилей и справочников.
Пример JSON-объекта:
{
"LogLevel": 5,
"MaxChannels": 100
}
Пример JSON-массива:
[
"key1",
"key2",
"key3"
]
Принципы именования команд
Имена CLI-команд обычно отражают тип выполняемой операции.
| Префикс | Назначение |
|---|---|
|
Получение информации. |
|
Создание объектов. |
|
Изменение параметров или объектов. |
|
Удаление объектов или настроек. |
|
Перемещение или переименование объектов. |
Примеры:
DomainsList
DomainCreate
ModuleSetLogLevel
DomainRemove
MailboxRename
Служебные команды CLI
CLI поддерживает служебные команды управления сессией.
| Команда | Назначение |
|---|---|
|
Переключает формат вывода между многострочным и компактным режимом. |
|
Отключает тайм-аут чтения для CLI-соединения. |
|
Завершает CLI-сессию и закрывает соединение. |
Права доступа CLI
CLI использует систему административных прав IVA Mail.
Доступность команд зависит от:
-
роли администратора;
-
уровня прав;
-
области действия прав.
Некоторые команды доступны только серверным администраторам.
При недостатке прав выполнение команды завершается ошибкой доступа.
Наследование настроек
Многие команды CLI работают с системой наследования настроек IVA Mail.
При удалении локального значения параметра сервер использует ближайшее вышестоящее значение.
Порядок разрешения параметров:
-
Локальное значение аккаунта.
-
Профиль аккаунта домена.
-
Профиль аккаунта сервера;
-
Доменные умолчания для аккаунтов.
-
Глобальные серверные умолчания для аккаунтов.
-
Заводское значение.
Команды DelSetting и DelDefault не обязательно возвращают заводское значение. Вместо этого применяется ближайшее значение по цепочке наследования.
|
Подробнее см. в разделе Архитектура и наследование настроек.
Работа с настройками
CLI позволяет:
-
читать настройки модулей;
-
изменять параметры модулей;
-
изменять уровень журналирования;
-
управлять настройками доменов и аккаунтов;
-
возвращать параметры к значениям по умолчанию.
Для работы с настройками используются команды:
-
ModuleReadConfig; -
ModuleGetSetting; -
ModuleSetSetting; -
ModuleDelSetting; -
ModuleUpdateConfig; -
DomainGetSetting; -
DomainSetSetting; -
ObjectGetSetting; -
ObjectSetSetting.
Работа с доменами и объектами
CLI позволяет управлять:
-
доменами;
-
аккаунтами;
-
группами;
-
переадресаторами;
-
папками;
-
календарями;
-
контактами;
-
ролями и администраторами.
Большинство команд поддерживает обращение:
-
по имени объекта;
-
по UID объекта.
Работа с профилями настроек
CLI поддерживает создание и изменение профилей настроек.
Профили могут создаваться:
-
на уровне сервера;
-
на уровне домена.
Если вместо домена передается null, операция применяется к серверному уровню.
Пример:
AccountsDefaultProfileCreate null "default-profile"
Работа со справочником
CLI предоставляет команды для работы со справочником:
-
поиск записей;
-
добавление записей;
-
изменение атрибутов;
-
удаление записей;
-
перемещение записей.
Справочник может использовать разные источники данных:
-
PostgreSQL;
-
LDAP;
-
другие настроенные тома.
Для прямой работы с PostgreSQL используются команды PgDirectory*.
Для прямого обращения к LDAP используется команда LdapClientSearch.
Работа с правилами обработки почты
CLI позволяет управлять правилами обработки почты на уровнях:
-
сервера;
-
домена;
-
объекта.
Основные команды:
-
RulesList; -
RuleGet; -
RuleAdd; -
RuleSet; -
RuleDel.
Работа с очередями
CLI позволяет получать информацию о почтовых очередях и доставке сообщений.
Основные команды:
-
MailQueueList; -
MailBatchList.
Работа с сессиями
CLI позволяет:
-
просматривать активные сессии;
-
создавать сессии;
-
закрывать сессии;
-
изменять данные сессий.
Основные команды:
-
SessionList; -
SessionCreate; -
SessionClose; -
SessionGetInfo; -
SessionUpdateInfo.
Работа с белыми и чёрными списками
CLI позволяет:
-
получать содержимое списков;
-
добавлять адреса;
-
удалять адреса.
Основные команды:
-
GetWhitelisted; -
GetBlacklisted; -
SetWhitelisted; -
SetBlacklisted; -
DelWhitelisted; -
DelBlacklisted.
| При добавлении адреса в белый список он автоматически удаляется из чёрного списка, и наоборот. |
Работа со списками адресов
CLI поддерживает работу с именованными списками адресов.
Основные команды:
-
AddressListCheck; -
AddressListGet; -
AddressListUpdate.
Работа с календарями и контактами
CLI позволяет выполнять операции с календарями и контактами пользователей.
Для календарей доступны команды:
-
CalendarUpdate; -
CalendarSearch; -
CalendarShow; -
CalendarSetAlarm; -
CalendarFreeBusy; -
CalendarProposal.
Для контактов доступны команды:
-
ContactsUpdate; -
ContactsSearch; -
ContactsRemove.
Работа с планировщиком задач
CLI поддерживает планирование и выполнение серверных задач.
Основные команды:
-
TaskSchedule; -
TaskCancel; -
TasksList.
Безопасность CLI
CLI предоставляет административный доступ к серверу IVA Mail.
Рекомендуется:
-
не открывать порт
106во внешние сети; -
использовать подключение только из доверенных сетей;
-
использовать SSH-туннель при удаленном подключении;
-
использовать сложные пароли администраторов;
-
выдавать только необходимые права администраторам;
-
учитывать, что часть команд изменяет состояние сервера немедленно.
| Некоторые команды могут удалить объекты, изменить права доступа, изменить параметры доставки или остановить сервер. Перед выполнением команд рекомендуется проверять параметры и область применения. |
Справочник команд
Данный раздел описывает:
-
общие принципы работы CLI;
-
синтаксис команд;
-
правила передачи параметров;
-
особенности наследования и прав доступа.
Подробное описание команд, параметров и примеров использования приведено в справочнике команд CLI.
Полный список CLI-команд приведен в разделе Справочник команд CLI.