Хосты и учётные данные
Серверная документация в netrunner-server/docs/nrunner/host и credentials описывает работу с активами, инвентаризацией и учётными данными.
Хосты
| Метод | Путь | Назначение |
|---|---|---|
GET | /hosts | Получить список хостов. |
POST | /hosts | Создать один или несколько хостов. |
GET | /hosts/{host_id} | Получить карточку хоста. |
PUT | /hosts/{host_id} | Обновить хост. |
DELETE | /hosts/{host_id} | Удалить один хост. |
DELETE | /hosts | Массовое удаление хостов по списку ids. |
GET | /hosts/{host_id}/inventory/packages | Получить пакеты из инвентаризации хоста. |
POST | /hosts/{host_id}/agent | Запустить операцию установки, обновления или удаления агента. |
Фильтры списка хостов
Для GET /hosts в серверной документации описаны query-параметры:
current_iphostnamegroup_idlimitpage
Создание хостов
В актуальной серверной документации POST /hosts принимает массив объектов:
[
{
"current_ip": "192.168.20.165",
"hostname": "host-01",
"description": "Primary test host"
}
]Это важно: старая markdown-документация с полями ip и name больше не соответствует серверной документации.
Карточка хоста
GET /hosts/{host_id} возвращает карточку asset/host. Если по хосту уже сохранена инвентаризация, в ответе приходит поле inventory со сведениями об ОС, ядре, CPU, uptime и пакетах.
Основные поля, которые стоит ожидать:
idcurrent_iphostnamestatusdescriptioninventorycreated_atupdated_at
Учётные данные
| Метод | Путь | Назначение |
|---|---|---|
GET | /credentials | Получить список учётных данных. |
POST | /credentials | Создать учётные данные. |
DELETE | /credentials/{id} | Удалить учётные данные. |
В серверной документации есть как минимум два варианта создания:
ssh_passwordwinrm_password
Пример SSH credential:
{
"name": "linux-root",
"type": "ssh_password",
"username": "root",
"password": "root"
}Пример WinRM credential:
{
"name": "windows-admin",
"type": "winrm_password",
"username": "{{windows_admin_username}}",
"password": "{{windows_admin_password}}"
}Развёртывание агента
POST /hosts/{host_id}/agent используется для install/update/uninstall агента на выбранном хосте.
Пример тела:
{
"action": "install",
"os_family": "linux",
"credential_id": 1
}События по таким операциям можно получать в реальном времени через ws/agents.