kinit -v <имя пользователя>@<имя домена>
Продукт «Служба управления конфигурациями "Осмакс"» предоставляет RESTful API для:
логического модуля «Каталог конфигураций»;
логического модуля «Инвентаризация»;
Для доступа к конечным точкам (endpoints) API необходимо в заголовке HTTP-запроса Authorization предоставить
билет (ticket) Kerberos.
Чтобы получить билет (ticket) Kerberos, выполните шаги:
Убедитесь, что на машине, с которой вы будете выполнять вызов API-методов, настроено окружение для аутентификации Kerberos — установлен и настроен Kerberos-клиент.
Получите билет (ticket) Kerberos, используя команду kinit.
kinit -v <имя пользователя>@<имя домена>
Пример команды:
kinit -v vivanov@OSMAX.TERRA.INNO.TECH
Пример вывода:
Placing tickets for `vivanov@OSMAX.TERRA.INNO.TECH` in cache `API:AS8FAF0V-AS4S-V39T-T4ZE-12DE34N4N77JA`
Для проверки валидности полученного билета (ticket) отобразите список кэшированных билетов (tickets) Kerberos,
выполнив команду klist.
Пример вывода:
Credentials cache: API:EC59A7DE-43A4-43E3-A349-56F92E31A71D
Principal: aarshavin@OSMAX.TERRA.INNO.TECH
Issued Expires Principal
Feb 13 12:51:40 2024 Feb 13 22:51:40 2024 krbtgt/OSMAX.TERRA.INNO.TECH@OSMAX.TERRA.INNO.TECH
Feb 13 12:51:47 2024 Feb 13 22:51:40 2024 HTTP/staging-osmax.terra.inno.tech@OSMAX.TERRA.INNO.TECHH
Чтобы подставить значение полученного билета (ticket) в заголовок Authorization при вызове API-метода, используйте утилиту cURL.
Ниже рассмотрен вызов API-метода на примере getConfigurationList — получение списка конфигураций:
curl -x POST --location "https://"staging-osmax-terra-inno-tech/api/v1/configurations/search" -Н "Content-type: application/json" --negotiate --user : | jq
Где:
curl — утилита командной строки, которая позволяет отправлять HTTP-запросы на сервер и получать ответы;
-x POST — флаг, указывающий метод запроса, который используется для отправки данных на сервер;
--location — флаг, указывающий curl на необходимость следовать перенаправлениям, если сервер возвращает HTTP-код
3xx;
https://staging-rt-terra-inno-tech — URL-адрес сервера, на который будет отправлен запрос;
-H "Content-type: application/json" — флаг, который добавляет заголовок к запросу. В данном примере заголовок
Content-type устанавливается в значение application/json, что указывает на то, что тело запроса будет передано в формате JSON;
--negotiate — флаг, указывающий на использование аутентификации по протоколу Kerberos (Negotiate);
--user : — флаг, который определяет имя пользователя для аутентификации. Двоеточие в сочетании с флагом --negotiate
указывает curl, что необходимо получить билет (ticket) для указанного хоста от имени данного пользователя и подставить в заголовок
Authorization.
Пример ответа:
{
"configurations": [
{
"id": 5467,
"displayName": "Яндекс браузер",
"description": "Браузер от компании Яндекс",
"fullDescription": "Браузер от компании Яндекс.(...)",
"guide": "Если вы не сделали его основным, при его запуске может появляться окно Сделать этот браузер основным? Чтобы окно больше не показывалось, включите опцию Больше не спрашивать и нажмите Не сейчас.",
"isApplication": true,
"tags": [
"Браузер"
],
"categories": [
"Сеть"
],
"createdAt": "2023-08-27T09:37:40.000Z",
"updatedAt": "2023-08-27T09:37:40.000Z",
"createdBy": "vivanov@domain.local",
"updatedBy": "vivanov@domain.local",
"iconPath": "icons/123321-7cb06ef0-87ab-4a60-b20e-33c2d9725a09-open-office.png",
"imagesPaths": [
"images/123321-7cb06ef0-87ab-4a60-b20e-33c2d9725a09-open-office-screen03.jpg"
],
"defaultVersion": 1234,
"isActive": true
}
],
"meta": {
"totalRecords": 1729,
"pageSize": 20,
"totalPages": 87,
"currentPage": 2,
"hasNext": true,
"hasPrev": true
}
}
|
Если при установке продукта в конфигурационном файле бэкенда |
В разделе описаны методы API-интерфейса модуля «Каталог конфигураций», предназначенные для управления формулами SaltStack и управления конфигурациями:
deleteFormula — удаление формулы SaltStack из S3-совместимого хранилища;
getCategoryById — получение категории конфигурации по идентификатору;
updateCategoryById — изменение категории конфигурации по идентификатору;
* deleteCategoryById — удаление категории конфигурации по идентификатору;
createCategory — создание категории конфигурации;
getCategoriesList — получение списка категорий.
Удаление формулы из S3-совместимого хранилища.
DELETE /v2/formulas/{formulaName}
| Имя | Описание | Обязательный | Тип |
|---|---|---|---|
|
Имя формулы |
Да |
|
| Код | Сообщение | Тип данных / объект схемы (DTO) | Пример |
|---|---|---|---|
|
Результат удаления формулы из S3-совместимого хранилища |
|
|
|
Ошибка аутентификации |
||
|
Ошибка операции над сущностью пакета из-за связи с активными версиями |
|
|
|
Внутренняя ошибка |
|
Получение категории конфигураций по идентификатору.
GET /v1/categories/{categoryId}
| Имя | Описание | Обязательный | Тип | Пример |
|---|---|---|---|---|
|
Идентификатор категории конфигурации |
Да |
|
|
| Код | Сообщение | Тип данных / объект схемы (DTO) | Пример |
|---|---|---|---|
|
Перечень параметров категории конфигурации |
|
|
|
Некорректные параметры запроса |
|
|
|
Ошибка аутентификации |
||
|
Объект не найден |
|
|
|
Внутренняя ошибка |
|
Изменение категории конфигураций по идентификатору.
PUT /v1/categories/{categoryId}
| Имя | Описание | Обязательный | Тип | Пример |
|---|---|---|---|---|
|
Идентификатор категории конфигурации |
Да |
|
|
{
"color": "00ff00",
"name": "Офис",
"description": "Категория программ для работы в сети Интернет",
"iconCode": "ms_office_icon"
}
application/json
| Код | Сообщение | Тип данных / объект схемы (DTO) | Пример |
|---|---|---|---|
|
Представление категории конфигурации |
|
|
|
Некорректные параметры запроса |
|
|
|
Ошибка аутентификации |
||
|
Объект не найден |
|
|
|
Внутренняя ошибка |
|
Удаление категории конфигурации по идентификатору.
DELETE /v1/categories/{categoryId}
| Имя | Описание | Обязательный | Тип | Пример |
|---|---|---|---|---|
|
Идентификатор категории конфигурации |
Да |
|
|
| Код | Сообщение | Тип данных / объект схемы (DTO) | Пример |
|---|---|---|---|
|
Категория удалена |
||
|
Некорректные параметры запроса |
|
|
|
Ошибка аутентификации |
||
|
Объект не найден |
|
|
|
Внутренняя ошибка |
|
Создание категории конфигурации.
POST /v1/categories
{
"id": "office",
"name": "Офис",
"description": "Категория программ для работы в сети Интернет",
"color": "00ff00",
"iconCode": "ms_office_icon"
}
application/json
| Код | Сообщение | Тип данных / объект схемы (DTO) | Пример |
|---|---|---|---|
|
Набор параметров созданной категории конфигурации |
|
|
|
Некорректные параметры запроса |
|
|
|
Ошибка аутентификации |
||
|
Внутренняя ошибка |
|
Получение списка категорий конфигураций.
POST /v1/categories/search
| Имя | Описание | Обязательный | Тип | Пример |
|---|---|---|---|---|
|
Общее количество страниц |
Нет |
|
|
|
Количество элементов, возвращаемых в запросе |
Нет |
|
|
| Код | Сообщение | Тип данных / объект схемы (DTO) | Пример |
|---|---|---|---|
|
Список категорий |
|
|
|
Некорректные параметры запроса |
|
|
|
Ошибка аутентификации |
||
|
Внутренняя ошибка |
|
Ошибка обновления сущности из-за наличия связанных активных версий.
| Имя поля | Обязательное | Тип | Описание | Пример |
|---|---|---|---|---|
|
Да |
|
Код ошибки |
|
|
Да |
|
Описание ошибки |
|
|
Да |
Список связанных активных версий. Включает параметр |
Информация об ошибке.
| Имя поля | Обязательное | Тип | Описание | Пример |
|---|---|---|---|---|
|
Да |
|
Код ошибки. Включает параметр
|
|
|
Да |
|
Сообщение об ошибке |
|
Параметры для создания категории конфигураций.
| Имя поля | Обязательное | Тип | Описание | Пример |
|---|---|---|---|---|
|
Да |
|
Идентификатор категории конфигураций (макс. длина: 64). Включает параметр |
|
|
Да |
|
Название категории конфигураций (макс. длина: 255). Включает параметр |
|
|
Нет |
|
Описание категории конфигураций (макс. длина: 64). Включает параметр |
|
|
Да |
|
Цвет в формате HEX (макс. длина: 6). Включает параметр |
|
|
Да |
|
Код изображения для категории (макс. длина: 255). Включает параметр |
|
Описание категории конфигураций.
Тип: string.
Пример: Категория программ для работы в сети Интернет.
Идентификатор категории конфигураций (макс. длина: 64).
Тип: string.
Шаблон: [A-Za-z0-9_\-]+.
Пример: Сеть.
Список категорий конфигураций.
| Имя поля | Обязательное | Тип | Описание | Пример |
|---|---|---|---|---|
|
Да |
Список категорий конфигураций. Включает параметр |
||
|
Да |
Категории конфигураций. Включает параметр |
Перечень параметров категории конфигураций.
| Имя поля | Обязательное | Тип | Описание | Пример |
|---|---|---|---|---|
|
Да |
|
Идентификатор категории конфигураций (макс. длина: 64). Шаблон: |
|
|
Да |
|
Название категории конфигураций (макс. длина: 255). Включает параметр |
|
|
Нет |
|
Описание категории конфигураций (макс. длина: 64). Включает параметр |
|
|
Да |
|
Цвет в формате HEX. Шаблон: |
|
|
Да |
|
Код изображения для категории (макс. длина: 255). Включает параметр |
|
|
Нет |
|
Дата создания |
|
|
Нет |
|
Дата последнего изменения |
|
Параметры для обновления категории конфигураций.
| Имя поля | Обязательное | Тип | Описание | Пример |
|---|---|---|---|---|
|
Да |
|
Название категории конфигураций (макс. длина: 255). Включает параметр |
|
|
Нет |
|
Описание категории конфигураций (макс. длина: 64). Включает параметр |
|
|
Да |
|
Цвет в формате HEX. Шаблон: |
|
|
Да |
|
Код изображения для категории (макс. длина: 255). Включает параметр |
|
Код ошибки.
Тип: string.
Возможные значения:
object_already_exists — объект уже существует;
object_not_found — объект не найден;
validation_failed — ошибка валидации;
authorization_failed — ошибка авторизации;
internal_error — внутренняя ошибка.
Метаданные постраничной навигации.
| Имя поля | Обязательное | Тип | Описание | Пример |
|---|---|---|---|---|
|
Да |
|
Общее количество записей |
|
|
Да |
|
Количество возвращаемых элементов в запросе |
|
|
Да |
|
Общее количество страниц |
|
|
Да |
|
Номер текущей страницы |
|
|
Да |
|
Признак наличия следующей страницы |
|
|
Да |
|
Признак наличия предыдущей страницы |
|
RelatedActiveVersionsInfo S3ObjectDeleteResult S3ObjectImportStatus
Информация об активной версии.
| Имя поля | Обязательное | Тип | Описание | Пример |
|---|---|---|---|---|
|
Да |
|
Идентификатор версии конфигурации |
|
|
Да |
|
Версия (имя версии), которая отображается в пользовательском интерфейсе (мин. длина: 3; макс. длина: 256) |
|
|
Да |
|
Идентификатор конфигурации (макс. длина: 256) |
|
|
Да |
|
Имя конфигурации, которое отображается в пользовательском интерфейсе (мин. длина: 3; макс. длина: 256) |
|
Результат удаления объекта.
| Имя поля | Обязательное | Тип | Описание | Пример |
|---|---|---|---|---|
|
Да |
|
Статус нахождения объекта в хранилище. Включает параметр
|
|
|
Список результатов загрузки/удаления объекта. Включает параметр |
Результат загрузки/удаления объекта.
| Имя поля | Обязательное | Тип | Описание | Пример |
|---|---|---|---|---|
|
Нет |
|
Имя/URI сервера |
|
|
Нет |
|
Сообщение о результате выполнения операции |
|
|
Нет |
|
Статус нахождения объекта на сервере. Включает параметр
|
|
В разделе описаны методы API-интерфейса логического модуля «Инвентаризация», предназначенные для управления настройками продукта:
getSaltScheduleSettings — получение настроек расписания синхронизации агентов (minions) с сервером
управления (master);
updateSaltScheduleSettings — изменение настроек расписания синхронизации агентов (minions) с
сервером управления (master).
Получение настроек расписания синхронизации агентов (minions) с сервером управления (master) в SaltStack.
В зависимости от типа операции вы можете отдельно получить настройки (интервал времени и допустимую задержку выполнения операции) для каждой из них, используя следующие методы:
GET /v1/app/settings/salt/schedules/highstate — применение назначенных конфигураций на устройствах;
GET /v1/app/settings/salt/schedules/grains — инвентаризация устройств;
GET /v1/app/settings/salt/schedules/grains_sync — синхронизация параметров Grains;
GET /v1/app/settings/salt/schedules/refresh_pillar — синхронизация файлов Pillar;
GET /v1/app/settings/salt/schedules/user_session_history — синхронизация данных о сессиях пользователей;
GET /v1/app/settings/salt/schedules/user_agent_installation — сбор данных об установке агента (minion);
GET /v1/app/settings/salt/schedules/software_inventory_sync — инвентаризация устройств с помощью модулей выполнения
(execution modules), при которой собираются только
измененные данные;
GET /v1/app/settings/salt/schedules/software_inventory_full_sync — полная инвентаризация устройств с помощью
модулей выполнения (execution modules).
Все вышеперечисленные API-методы построены по единому принципу, поэтому ниже приведено общее описание, применимое
ко всей группе GET /v1/app/settings/salt/schedules/{scheduleType}.
| Имя | Описание | Обязательный | Тип | Пример |
|---|---|---|---|---|
|
Тип операции. Возможные значения: |
Да |
|
|
| Код | Сообщение | Тип данных / объект схемы (DTO) | Пример |
|---|---|---|---|
|
Текущие настройки расписаний для SaltStack |
|
|
|
Ошибка аутентификации |
||
|
Внутренняя ошибка |
|
Изменение настроек расписания синхронизации агентов (minions) с сервером управления (master) в SaltStack.
В зависимости от типа операции вы можете отдельно изменить настройки (интервал времени и допустимую задержку выполнения операции) для каждой из них, используя следующие методы:
PUT /v1/app/settings/salt/schedules/highstate — применение назначенных конфигураций на устройствах;
PUT /v1/app/settings/salt/schedules/grains — инвентаризация устройств;
PUT /v1/app/settings/salt/schedules/grains_sync — синхронизация параметров Grains;
PUT /v1/app/settings/salt/schedules/refresh_pillar — синхронизация файлов Pillar;
PUT /v1/app/settings/salt/schedules/user_session_history — синхронизация данных о сессиях пользователей;
GET /v1/app/settings/salt/schedules/user_agent_installation — сбор данных об установке агента (minion);
GET /v1/app/settings/salt/schedules/software_inventory_sync — инвентаризация устройств с помощью модулей выполнения
(execution modules), во время которой собираются только
измененные данные;
GET /v1/app/settings/salt/schedules/software_inventory_full_sync — полная инвентаризация устройств с помощью
модулей выполнения (execution modules).
Все вышеперечисленные API-методы построены по единому принципу, поэтому ниже приведено общее описание, применимое ко всей группе
PUT /v1/app/settings/salt/schedules/{scheduleType}.
| Имя | Описание | Обязательный | Тип | Пример |
|---|---|---|---|---|
|
Тип операции. Возможные значения: |
Да |
|
|
{
"seconds": 3600,
"hours": 24,
"minutes": 60,
"days": 14,
"range": "{}",
"splay": 10
}
application/json
| Код | Сообщение | Тип данных / объект схемы (DTO) | Пример |
|---|---|---|---|
|
Успешное применение настроек |
||
|
Incorrect request params (некорректные параметры запроса) |
|
|
|
Ошибка аутентификации |
||
|
Внутренняя ошибка |
|
Описание ошибки.
| Имя поля | Обязательное | Тип | Описание | Пример |
|---|---|---|---|---|
|
Да |
|
Код ошибки. Включает параметр
|
|
|
Да |
|
Сообщение об ошибке |
|
Код ошибки.
Тип: string.
Допустимые значения:
object_already_exists — объект уже существует;
object_not_found — объект не найден;
validation_failed — ошибка валидации;
authorization_failed — ошибка авторизации;
internal_error — внутренняя ошибка.
Статус последнего запуска задания на удаление данных.
Тип: string.
Допустимые значения:
ERROR — задание выполнено с ошибкой;
SUCCESS — задание успешно выполнено.
Текущие настройки расписаний для SaltStack.
| Имя поля | Обязательное | Тип | Описание | Пример |
|---|---|---|---|---|
|
Нет |
|
Определяет временной промежуток в секундах, через который будет выполняться операция. Минимальное значение: |
|
|
Нет |
|
Определяет временной промежуток в минутах, через который будет выполняться операция. Минимальное значение: |
|
|
Нет |
|
Определяет временной промежуток в часах, через который будет выполняться операция. Минимальное значение: |
|
|
Нет |
|
Определяет временной промежуток в днях, через который будет выполняться операция. Минимальное значение: |
|
|
Нет |
|
Временной интервал от 00:00 до 23:59, в рамках которого будет выполняться операция согласно расписанию.
Включает параметры
|
|
|
Нет |
|
Определяет верхнюю границу случайной задержки перед запланированным выполнением в секундах. Например, если |
|
Запрос на изменение настроек расписаний для SaltStack.
| Имя поля | Обязательное | Тип | Описание | Пример |
|---|---|---|---|---|
|
Нет |
|
Определяет временной промежуток в секундах, через который будет выполняться операция. Минимальное значение: |
|
|
Нет |
|
Определяет временной промежуток в минутах, через который будет выполняться операция. Минимальное значение: |
|
|
Нет |
|
Определяет временной промежуток в часах, через который будет выполняться операция. Минимальное значение: |
|
|
Нет |
|
Определяет временной промежуток в днях, через который будет выполняться операция. Минимальное значение: |
|
|
Нет |
|
Временной интервал от 00:00 до 23:59, в рамках которого будет выполняться операция согласно расписанию.
Включает параметры
|
|
|
Нет |
|
Определяет верхнюю границу случайной задержки перед запланированным выполнением в секундах. Например, если |
|
|
Да |
|
Дата и время создания параметра |
|
|
Да |
|
Дата и время последнего обновления параметра |
|
|
Нет |
|
Автор последнего изменения параметра |
|
Временной интервал от 00:00 до 23:59.
| Имя поля | Обязательное | Тип | Описание | Пример |
|---|---|---|---|---|
|
Да |
|
Начало временного интервала в формате HH:MM (24 часа). Шаблон: |
|
|
Да |
|
Окончание временного интервала в формате HH:MM (24 часа). Шаблон: |
|
В разделе описаны методы API-интерфейса модуля установки ОС, предназначенные для выполнения операций по поддержке хода процесса установки ОС.
getBootloaderConfigurationFile — получение конфигурационного файла для программы-загрузчика;
getPostInstallScriptFile — получение файла скрипта для запуска в процессе установки;
getUnattendedInstallFile — получение файла автоответов;
updateInstallationProcessStatus — фиксация статуса установки.
Получение конфигурационного файла для программы-загрузчика для конкретного устройства. Функция предназначена для вызова с конечных устройств для получения цепочки загрузки.
GET /v1/boot_loaders/{bootloaderId}/config
| Имя | Описание | Обязательный | Тип | Пример |
|---|---|---|---|---|
|
Уникальный внутренний идентификатор программы-загрузчика |
Да |
|
|
| Имя | Описание | Обязательный | Тип | Пример |
|---|---|---|---|---|
|
MAC-адрес устройства |
Нет |
|
|
|
Cистемное наименование шаблона |
Нет |
|
|
| Код | Сообщение | Тип данных / объект схемы (DTO) | Пример |
|---|---|---|---|
|
Сформированный конфигурационный файл для программы-загрузчика |
||
|
Объект не найден |
|
|
|
Невозможно обработать запрос |
|
|
|
Внутренняя ошибка |
|
Получение назначенного на устройство файла пост-установочного скрипта. Функция предназначена для вызова с конечных устройств.
GET /v1/provisioning_scripts
| Имя | Описание | Обязательный | Тип | Пример |
|---|---|---|---|---|
|
Уникальный внутренний идентификатор устройства |
Да |
|
|
| Код | Сообщение | Тип данных / объект схемы (DTO) | Пример |
|---|---|---|---|
|
Файл пост-установочного скрипта |
||
|
Ошибка аутентификации |
||
|
Объект не найден |
|
|
|
Внутренняя ошибка |
|
Получение назначенного на устройство файла автоответов, заполненного параметрами согласно шаблону, который определяется по MAC-адресу, передаваемому в запросе.
GET /v1/unattended_install_files
| Имя | Описание | Обязательный | Тип | Пример |
|---|---|---|---|---|
|
MAC-адрес устройства |
Да |
|
|
| Код | Сообщение | Тип данных / объект схемы (DTO) | Пример |
|---|---|---|---|
|
Файл автоответов |
||
|
Ошибка аутентификации |
||
|
Объект не найден |
|
|
|
Внутренняя ошибка |
|
Фиксация состояния процесса установки ОС на новое устройство.
POST /v1/unprovisioned_machines/{unprovisionedMachineId}/installation_process/status
| Имя | Описание | Обязательный | Тип | Пример |
|---|---|---|---|---|
|
Уникальный внутренний идентификатор устройства |
Да |
|
|
| Имя | Описание | Обязательный | Тип | Пример |
|---|---|---|---|---|
|
Статусы этапов установки ОС. Возможные значения:
|
Да |
|
|
|
Название текущего шага установки ОС |
Да |
|
|
|
Дополнительная информация, например при ошибке установки код ответа или описание причины |
Нет |
|
|
| Код | Сообщение | Тип данных / объект схемы (DTO) | Пример |
|---|---|---|---|
|
Статус успешно изменен |
||
|
Объект не найден |
|
|
|
Невозможно обработать запрос |
|
|
|
Внутренняя ошибка |
|
Информация об ошибке.
| Имя поля | Обязательное | Тип | Описание | Пример |
|---|---|---|---|---|
|
Да |
|
Код ошибки. Включает параметр
|
|
|
Да |
|
Сообщение об ошибке |
|