Skip to content

Хосты и учётные данные

Серверная документация в 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_ip
  • hostname
  • group_id
  • limit
  • page

Создание хостов

В актуальной серверной документации POST /hosts принимает массив объектов:

json
[
  {
    "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 и пакетах.

Основные поля, которые стоит ожидать:

  • id
  • current_ip
  • hostname
  • status
  • description
  • inventory
  • created_at
  • updated_at

Учётные данные

МетодПутьНазначение
GET/credentialsПолучить список учётных данных.
POST/credentialsСоздать учётные данные.
DELETE/credentials/{id}Удалить учётные данные.

В серверной документации есть как минимум два варианта создания:

  • ssh_password
  • winrm_password

Пример SSH credential:

json
{
  "name": "linux-root",
  "type": "ssh_password",
  "username": "root",
  "password": "root"
}

Пример WinRM credential:

json
{
  "name": "windows-admin",
  "type": "winrm_password",
  "username": "{{windows_admin_username}}",
  "password": "{{windows_admin_password}}"
}

Развёртывание агента

POST /hosts/{host_id}/agent используется для install/update/uninstall агента на выбранном хосте.

Пример тела:

json
{
  "action": "install",
  "os_family": "linux",
  "credential_id": 1
}

События по таким операциям можно получать в реальном времени через ws/agents.

Документация NRunner