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

eq.php

Модуль управления оборудованием (eq.php) для операций с серверами: заказ, деплой, перезагрузка, управление питанием, IPMI, бэкапы и мониторинг.

Методы API

Метод Действие Описание
add_ipmi_user добавление пользователя IPMI Добавляет пользователя IPMI для указанного сервера. Генерирует случайный логин и пароль, если не переданы администратором.
boot_dev загрузка с устройства Загружает сервер с указанного носителя (PXE или диск).
clear_pxe очистка PXE конфигурации Очищает PXE конфигурацию для указанного хоста.
create_pxe создание PXE конфигурации Запрашивает переустановку сервера через PXE.
list получение списка оборудования Возвращает список доступного оборудования по различным критериям поиска.
novnc запрос NoVNC консоли Запрашивает доступ к NoVNC консоли сервера.
off выключение сервера Запрашивает выключение сервера.
on включение сервера Запрашивает включение сервера (reboot/power on).
order_instance заказ экземпляра сервера Заказывает новый сервер или переустанавливает существующий.
reboot перезагрузка сервера Запрашивает перезагрузку сервера.
recreate_novnc пересоздание NoVNC консоли Пересоздает NoVNC консоль для механизма callback.
reinstall запрос переустановки Запрашивает переустановку сервера (reinstall) через метод order_instance.
remove_ipmi_user удаление пользователя IPMI Удаляет дополнительных пользователей IPMI.
sensors получение данных сенсоров Получает данные сенсоров сервера.
show показ данных сервера Возвращает данные о сервере и оборудовании.
status получение статуса сервера Получает статус сервера по ID.
stop_novnc остановка NoVNC консоли Останавливает NoVNC консоль.
unit_reset сброс IPMI Запрашивает сброс IPMI сервера.
update_servers обновление списка серверов Обновляет список активных серверов для текущего токена, проверяя статусы в биллинге и добавляя новые серверы в сессию.

eq/add_ipmi_user

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

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: add_ipmi_user
token string Токен авторизации
id int ID сервера
admin_user string Имя пользователя для администраторов (если есть тег admin_ipmi)
admin_pass string Пароль для администратора (если указан admin_user)

Пример запроса

curl -s "https://invapi.hostkey.ru/eq" -X POST \
--data "action=add_ipmi_user" \
--data "token=HOSTKEY_TOKEN" \
--data "id=VALUE"
Пример успешного ответа
{
"result": "OK",
"action": "add_ipmi_user",
"user": "u1a2b3c",
"password": "Ab1Cd2Ef3Gh4Ij5K"
}
Примеры ошибок
{
"code": -1,
"message": "EQ/add_ipmi_user: invalid server id"
}

eq/boot_dev

Загружает сервер с указанного носителя (PXE или диск).

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: boot_dev
token string Токен авторизации
id int ID сервера
media string Тип носителя (pxe, disk)
boot_mode string Режим загрузки (uefi, legacy, auto)

Пример запроса

curl -s "https://invapi.hostkey.ru/eq" -X POST \
--data "action=boot_dev" \
--data "token=HOSTKEY_TOKEN" \
--data "id=VALUE" \
--data "media=VALUE"
Пример успешного ответа
{
"result": "OK",
"action": "boot_dev",
"callback": "7bc29eb23fb1b879b21fce509597f07c"
}
Примеры ошибок
{
"code": -1,
"message": "Bootable media change request failed"
}

eq/clear_pxe

Очищает PXE конфигурацию для указанного сервера, позволяя перезагрузить процесс развертывания.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: clear_pxe
token string Токен авторизации для доступа к API.
id int Уникальный идентификатор сервера, для которого требуется очистка PXE.
hostname string Имя хоста сервера (опционально, используется для валидации или логирования).

Пример запроса

curl -s "https://invapi.hostkey.ru/eq" -X POST \
--data "action=clear_pxe" \
--data "token=HOSTKEY_TOKEN" \
--data "id=VALUE"
Пример успешного ответа
{
"result": "OK",
"action": "clear_pxe",
"callback": "7bc29eb23fb1b879b21fce509597f07c"
}
Примеры ошибок
{
"code": -1,
"message": "Failed to submit clear PXE config request"
}

eq/create_pxe

Запрашивает переустановку сервера через PXE.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: create_pxe
token string Токен авторизации
id int ID сервера
os_id int ID операционной системы
os_name string Название ОС (если os_id не указан)
root_pass string Пароль root
hostname string Имя хоста (по умолчанию ID сервера)
ssh_key string SSH ключ
post_install_script string Скрипт пост-установки
post_install_callback string URL для callback после установки
disk_mirror int Тип зеркалирования диска
uefi int Использовать UEFI (0/1)
root_size int Размер корневой分区
custom_domain string Кастомный домен
deploy_ticket string ID тикета для деплоя
manual_choice_dsk int Ручной выбор диска
cloud_init_script string Скрипт cloud-init
reinstall_key string Ключ переустановки
email string Email для уведомлений
deploy_data string Данные для деплоя
deploy_options string Опции деплоя
deploy_period string Период деплоя
deploy_price int Цена деплоя
deploy_notify int Уведомление о деплое
deploy_comment string Комментарий к деплою
imitate_deploy int Имитация деплоя
imitate_error int Имитация ошибки
own_os int Собственная ОС
jenkins_task string Задача Jenkins
jenkins_tests int Тесты Jenkins
traffic_plan int Трафик план
location_name string Название локации
invoice_relid int ID инвойса
activate_windows int Активация Windows
attendedInstall int Установщик с участием
option int Опция сервера
value int Значение опции
params array<array> Дополнительные параметры
config int Конфигурация сервера
server_name string Имя сервера
log_line string Лог линия
kvm string KVM
white_ip string Белый IP
name string Имя
description string Описание
size string Размер
groups array<array> Группы
rack string Рэк
rack_position int Позиция в рэке
ip string IP адрес
promocode string Промокод
full int Полный режим
vlan string VLAN
key string Ключ
new_id int Новый ID
new_interface_id int Новый ID интерфейса
dont_move_ip int Не перемещать IP
map_interface int Карта интерфейса
free_ips int Свободные IP
create_kayako_ticket int Создать тикет Kayako
kayako_ticket_text string Текст тикета Kayako
ticket string Тикет
limit int Лимит
no_lvm string Без LVM
tags_replace_confirmed int Подтверждение замены тегов
ipv4_amount int Количество IPv4
currency_code string Код валюты

Пример запроса

curl -s "https://invapi.hostkey.ru/eq" -X POST \
--data "action=create_pxe" \
--data "token=HOSTKEY_TOKEN" \
--data "id=VALUE" \
--data "os_id=VALUE" \
--data "root_pass=VALUE"
Пример успешного ответа
{
"result": "OK",
"action": "create_pxe",
"callback": "7bc29eb23fb1b879b21fce509597f07c"
}
Примеры ошибок
{
"code": -1,
"message": "Create PXE config request failed"
}

eq/list

Возвращает список доступного оборудования по различным критериям поиска.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: list
token string Токен авторизации
id int ID сервера для фильтрации
location int ID локации (целочисленный)
full int Возвращать полные данные (1/0)
type string Тип оборудования
group string Группа оборудования
status string Статус оборудования
ip string IP адрес для поиска

Пример запроса

curl -s "https://invapi.hostkey.ru/eq" -X POST \
--data "action=list" \
--data "token=HOSTKEY_TOKEN"
Пример успешного ответа
{
"result": "OK",
"module": "eq",
"action": "list",
"servers": [
  {
    "id": 12345,
    "name": "server-01",
    "status": "rent",
    "location": "NL",
    "ip": "192.168.1.1",
    "type": "Server"
  }
]
}
Примеры ошибок
{
"code": -2,
"message": "Authentication required",
"description": "Отсутствует токен или токен невалиден"
}

eq/novnc

Инициализирует подключение к NoVNC консоли для указанного сервера. Возвращает ключ для отслеживания статуса операции.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: novnc
token string Токен авторизации
id int ID сервера
white_ip string IP-адрес для белого списка (опционально)

Пример запроса

curl -s "https://invapi.hostkey.ru/eq" -X POST \
--data "action=novnc" \
--data "token=HOSTKEY_TOKEN" \
--data "id=VALUE"
Пример успешного ответа
{
"result": "OK",
"action": "novnc",
"callback": "7bc29eb23fb1b879b21fce509597f07c"
}
Примеры ошибок
{
"code": -1,
"message": "NoVNC console request failed"
}

eq/off

Запрашивает выключение сервера.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: off
token string Токен авторизации
id int ID сервера

Пример запроса

curl -s "https://invapi.hostkey.ru/eq" -X POST \
--data "action=off" \
--data "token=HOSTKEY_TOKEN" \
--data "id=VALUE"
Пример успешного ответа
{
"result": "OK",
"action": "off",
"id": 12345
}
Примеры ошибок
{
"code": -1,
"message": "eq/off: incorrect server id"
}

eq/on

Отправляет команду на включение сервера по указанному ID. Требует валидацию токена и проверки прав доступа.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: on
token string Токен авторизации для проверки прав доступа.
id int Уникальный идентификатор сервера для запуска.

Пример запроса

curl -s "https://invapi.hostkey.ru/eq" -X POST \
--data "action=on" \
--data "token=HOSTKEY_TOKEN" \
--data "id=VALUE"
Пример успешного ответа
{
"result": "OK",
"action": "on",
"callback": "7bc29eb23fb1b879b21fce509597f07c"
}
Примеры ошибок
{
"code": -1,
"message": "Start request failed: Server is locked or invalid ID"
}

eq/order_instance

Заказывает новый сервер или переустанавливает существующий.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: order_instance
token string Токен авторизации
id int ID сервера (для переустановки)
preset string Название пресета
location_name string Название локации
root_pass string Пароль root
os_id int ID операционной системы
os_name string Название ОС
ssh_key string SSH ключ
hostname string Имя хоста
deploy_period string Период биллинга
traffic_plan int ID тарифа трафика
ipv4_amount int Количество IPv4 адресов
soft_id int ID дополнительного ПО
promocode string Промокод
custom_domain string Кастомный домен
os_template string Шаблон ОС
currency_code string Код валюты
vlan string ID приватной VLAN
deploy_data string Данные для деплоя (email или invoice id)
deploy_options string Опции деплоя
deploy_notify int Флаг уведомлений
deploy_ticket string ID тикета Kayako
deploy_comment string Комментарий к деплою
imitate_deploy int Имитация деплоя
imitate_error int Имитация ошибки
own_os int Собственная ОС
jenkins_task string Задача Jenkins
jenkins_tests int Тесты Jenkins
disk_mirror int Зеркалирование диска
root_size int Размер корневой分区
email string Email клиента
post_install_script string Скрипт пост-установки
post_install_callback string Callback после установки
reinstall_key string Ключ переустановки
uefi int Флаг UEFI
attendedInstall int Флаг attended install
activate_windows int Активация Windows
invoice_relid int relid инвойса
cloud_init_script string Cloud-init скрипт
no_lvm string Отключить LVM
ip string Приватный IP
deploy_price string Цена деплоя

Пример запроса

curl -s "https://invapi.hostkey.ru/eq" -X POST \
--data "action=order_instance" \
--data "token=HOSTKEY_TOKEN" \
--data "location_name=VALUE" \
--data "root_pass=VALUE" \
--data "os_id=VALUE"
Пример успешного ответа
{
"result": "OK",
"action": "order_instance",
"callback": "7bc29eb23fb1b879b21fce509597f07c",
"deploy_status": "install",
"id": 12345,
"os_name": "Ubuntu 22.04",
"soft_name": "cPanel"
}
Примеры ошибок
{
"code": -1,
"message": "OS is not compatible with preset"
}

eq/reboot

Запрашивает перезагрузку сервера.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: reboot
token string Токен авторизации
id int ID сервера

Пример запроса

curl -s "https://invapi.hostkey.ru/eq" -X POST \
--data "action=reboot" \
--data "token=HOSTKEY_TOKEN" \
--data "id=VALUE"
Пример успешного ответа
{
"result": "OK",
"action": "reboot",
"callback": "7bc29eb23fb1b879b21fce509597f07c"
}
Примеры ошибок
{
"code": -1,
"message": "Reboot request failed"
}

eq/recreate_novnc

Пересоздает NoVNC консоль для механизма callback.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: recreate_novnc
token string Токен авторизации
id int ID сервера

Пример запроса

curl -s "https://invapi.hostkey.ru/eq" -X POST \
--data "action=recreate_novnc" \
--data "token=HOSTKEY_TOKEN" \
--data "id=VALUE"
Пример успешного ответа
{
"result": "OK",
"action": "recreate_novnc",
"callback": "7bc29eb23fb1b879b21fce509597f07c"
}
Примеры ошибок
{
"code": -1,
"message": "NoVNC recreate console request failed"
}

eq/reinstall

Запрашивает переустановку сервера (reinstall) через метод order_instance.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: reinstall
token string Токен авторизации
id int ID сервера для переустановки
os_id int ID операционной системы
root_pass string Пароль root (минимум 8 символов, заглавная, цифра, спецсимвол)
ssh_key string SSH ключ для доступа
post_install_script string Скрипт пост-установки
post_install_callback string URL для обратного вызова после установки
hostname string Имя хоста сервера
reinstall_key string Ключ переустановки
email string Email для уведомлений
deploy_data string Данные для деплоя
deploy_notify int Флаг уведомлений о деплое
deploy_options string Опции деплоя
deploy_period string Период деплоя
deploy_price int Цена деплоя
deploy_ticket string ID тикета для деплоя
deploy_comment string Комментарий к деплою
imitate_deploy int Имитация деплоя
imitate_error int Имитация ошибки
os_name string Название ОС
own_os int Флаг собственной ОС
jenkins_task string Задача Jenkins
jenkins_tests int Тесты Jenkins
traffic_plan int Трафик план
disk_mirror string Зеркалирование диска
location_name string Название локации
invoice_relid int ID инвойса
activate_windows int Активация Windows
uefi string Флаг UEFI
attendedInstall string Флаг attendedInstall
option string Опция сервера
value string Значение опции
params array<array> Дополнительные параметры
config string Конфигурация сервера
server_name string Имя сервера
log_line string Лог линия
kvm string KVM доступ
white_ip string Белый IP
name string Имя
description string Описание
size string Размер
groups array<array> Группы
rack string Рэк
rack_position int Позиция в рэке
ip string IP адрес
promocode string Промокод
full string Полная переустановка
type string Тип
manual_choice_dsk string Ручной выбор диска
vlan string VLAN
key string Ключ
new_id int Новый ID
new_interface_id int Новый ID интерфейса
dont_move_ip int Не перемещать IP
map_interface int Карта интерфейса
free_ips int Свободные IP
create_kayako_ticket int Создать тикет Kayako
kayako_ticket_text string Текст тикета Kayako
ticket string Тикет
limit int Лимит
no_lvm string Без LVM
tags_replace_confirmed int Подтверждение замены тегов
ipv4_amount int Количество IPv4
currency_code string Код валюты
custom_domain string Кастомный домен
os_template string Шаблон ОС
soft_id int ID программного обеспечения
root_size int Размер корневой分区
cloud_init_script string Скрипт cloud-init

Пример запроса

curl -s "https://invapi.hostkey.ru/eq" -X POST \
--data "action=reinstall" \
--data "token=HOSTKEY_TOKEN" \
--data "id=VALUE" \
--data "os_id=VALUE" \
--data "root_pass=VALUE"
Пример успешного ответа
{
"result": "OK",
"action": "order_instance",
"callback": "7bc29eb23fb1b879b21fce509597f07c",
"deploy_status": "reinstall",
"id": 12345,
"os_name": "Ubuntu 20.04",
"soft_name": "MySQL"
}
Примеры ошибок
{
"code": -1,
"message": "Reinstall already underway for $id. Please try again shortly."
}

eq/remove_ipmi_user

Удаляет дополнительных пользователей IPMI.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: remove_ipmi_user
token string Токен авторизации
id int ID сервера
username string Имя пользователя IPMI для удаления

Пример запроса

curl -s "https://invapi.hostkey.ru/eq" -X POST \
--data "action=remove_ipmi_user" \
--data "token=HOSTKEY_TOKEN" \
--data "id=VALUE" \
--data "username=VALUE"
Пример успешного ответа
{
"result": "OK",
"action": "remove_ipmi_user",
"id": 12345,
"callback": "7bc29eb23fb1b879b21fce509597f07c"
}
Примеры ошибок
{
"code": -1,
"message": "Remove IPMI user request failed"
}

eq/sensors

Запрашивает текущие показания датчиков (температура, напряжение, обороты) для указанного сервера.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: sensors
token string Токен авторизации
id int Уникальный идентификатор сервера

Пример запроса

curl -s "https://invapi.hostkey.ru/eq" -X POST \
--data "action=sensors" \
--data "token=HOSTKEY_TOKEN" \
--data "id=VALUE"
Пример успешного ответа
{
"result": "OK",
"action": "sensors",
"callback": "7bc29eb23fb1b879b21fce509597f07c"
}
Примеры ошибок
{
"code": -1,
"message": "EQ/sensors: invalid server id"
}

eq/show

Возвращает данные о сервере и оборудовании.

HTTP-метод: GET

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: show
token string Токен авторизации
id int ID сервера

Пример запроса

curl -s "https://invapi.hostkey.ru/eq" -X GET \
--data "action=show" \
--data "token=HOSTKEY_TOKEN" \
--data "id=VALUE"
Пример успешного ответа
{
"result": "OK",
"module": "eq",
"action": "show",
"server_data": {
  "id": 12345,
  "name": "server-01",
  "status": "rent",
  "location": "NL",
  "ip": "192.168.1.1",
  "type": "Server"
},
"hardware": {
  "components": [
    {
      "Type": "CPU",
      "Name": "Intel Xeon",
      "Cores": 16
    }
  ]
},
"groups": [
  {
    "id": 1,
    "name": "Group 1"
  }
],
"licenses": [],
"reinstall": "",
"location": {
  "dc_name": "Datacenter 1",
  "rack_name": "Rack 1"
},
"OS": {
  "id": 10,
  "name": "Ubuntu 22.04"
},
"IP": [
  {
    "IP": "192.168.1.1",
    "type": "public"
  }
],
"interfaces": [
  {
    "id": 1,
    "type": "eth0",
    "mac": "00:11:22:33:44:55"
  }
],
"IPMI": {
  "model": "Supermicro",
  "interfaces": [
    {
      "IP": "192.168.1.100",
      "MAC": "00:11:22:33:44:56"
    }
  ]
},
"tags": [
  {
    "tag": "preset",
    "value": "preset-01"
  }
],
"preset": "preset-01",
"commitment": ""
}
Примеры ошибок
{
"code": -1,
"message": "Nothing found for id"
}

eq/status

Получает статус сервера по ID.

HTTP-метод: GET

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: status
token string Токен авторизации
id int ID сервера

Пример запроса

curl -s "https://invapi.hostkey.ru/eq" -X GET \
--data "action=status" \
--data "token=HOSTKEY_TOKEN" \
--data "id=VALUE"
Пример успешного ответа
{
"result": "OK",
"module": "eq",
"action": "status",
"status": "active",
"server_id": 12345,
"hostname": "server.example.com",
"ip": "192.168.1.1",
"os": "Ubuntu 22.04",
"ram": 16,
"cpu": 4,
"disk": 100
}
Примеры ошибок
{
"code": -1,
"message": "incorrect server id"
}

eq/stop_novnc

Прерывает сессию NoVNC консоли для указанного сервера.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: stop_novnc
token string Токен авторизации
id int Идентификатор сервера

Пример запроса

curl -s "https://invapi.hostkey.ru/eq" -X POST \
--data "action=stop_novnc" \
--data "token=HOSTKEY_TOKEN" \
--data "id=VALUE"
Пример успешного ответа
{
"result": "OK",
"action": "stop_novnc",
"callback": "7bc29eb23fb1b879b21fce509597f07c"
}
Примеры ошибок
{
"code": -1,
"message": "NoVNC console terminate request failed"
}

eq/unit_reset

Запрашивает сброс IPMI сервера.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: unit_reset
token string Токен авторизации
id int ID сервера

Пример запроса

curl -s "https://invapi.hostkey.ru/eq" -X POST \
--data "action=unit_reset" \
--data "token=HOSTKEY_TOKEN" \
--data "id=VALUE"
Пример успешного ответа
{
"result": "OK",
"action": "unit_reset",
"callback": "7bc29eb23fb1b879b21fce509597f07c"
}
Примеры ошибок
{
"code": -1,
"message": "IPMI unit reset request failed"
}

eq/update_servers

Обновляет список активных серверов для текущего токена, проверяя статусы в биллинге и добавляя новые серверы в сессию.

HTTP-метод: POST

Параметры:

Параметр Обязательный Тип Описание
action string Идентификатор метода: update_servers
token string Токен авторизации для проверки прав доступа

Пример запроса

curl -s "https://invapi.hostkey.ru/eq" -X POST \
--data "action=update_servers" \
--data "token=HOSTKEY_TOKEN"
Пример успешного ответа
{
"result": "OK",
"servers": [
  12345,
  12346
],
"billing_servers": [
  {
    "id": 999,
    "config": "json_config_string",
    "status": "Pending payment",
    "regdate": "2023-10-25",
    "name": "Server Name",
    "recurring": 1,
    "nextduedate": "2023-11-25",
    "billingcycle": "Monthly"
  }
],
"deploy_keys": {
  "12345": "abc123def456"
}
}
Примеры ошибок
{
"code": -1,
"message": "No active servers were found for this account",
"no_servers": 1
}

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×