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) |
Пример запроса
Пример успешного ответа
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) |
Пример запроса
Пример успешного ответа
eq/clear_pxe¶
Очищает PXE конфигурацию для указанного сервера, позволяя перезагрузить процесс развертывания.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: clear_pxe |
| token | ✅ | string | Токен авторизации для доступа к API. |
| id | ✅ | int | Уникальный идентификатор сервера, для которого требуется очистка PXE. |
| hostname | ❌ | string | Имя хоста сервера (опционально, используется для валидации или логирования). |
Пример запроса
Пример успешного ответа
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 | Ключ переустановки |
| ❌ | 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 | Код валюты |
Пример запроса
Пример успешного ответа
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 адрес для поиска |
Пример запроса
Пример успешного ответа
Примеры ошибок
{
"code": -2,
"message": "Authentication required",
"description": "Отсутствует токен или токен невалиден"
}
eq/novnc¶
Инициализирует подключение к NoVNC консоли для указанного сервера. Возвращает ключ для отслеживания статуса операции.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: novnc |
| token | ✅ | string | Токен авторизации |
| id | ✅ | int | ID сервера |
| white_ip | ❌ | string | IP-адрес для белого списка (опционально) |
Пример запроса
Пример успешного ответа
eq/off¶
Запрашивает выключение сервера.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: off |
| token | ✅ | string | Токен авторизации |
| id | ✅ | int | ID сервера |
Пример запроса
eq/on¶
Отправляет команду на включение сервера по указанному ID. Требует валидацию токена и проверки прав доступа.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: on |
| token | ✅ | string | Токен авторизации для проверки прав доступа. |
| id | ✅ | int | Уникальный идентификатор сервера для запуска. |
Пример запроса
Пример успешного ответа
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 | Размер корневой分区 |
| ❌ | 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 | Цена деплоя |
Пример запроса
Пример успешного ответа
eq/reboot¶
Запрашивает перезагрузку сервера.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: reboot |
| token | ✅ | string | Токен авторизации |
| id | ✅ | int | ID сервера |
Пример запроса
Пример успешного ответа
eq/recreate_novnc¶
Пересоздает NoVNC консоль для механизма callback.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: recreate_novnc |
| token | ✅ | string | Токен авторизации |
| id | ✅ | int | ID сервера |
Пример запроса
Пример успешного ответа
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 | Ключ переустановки |
| ❌ | 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 |
Пример запроса
Пример успешного ответа
Примеры ошибок
eq/remove_ipmi_user¶
Удаляет дополнительных пользователей IPMI.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: remove_ipmi_user |
| token | ✅ | string | Токен авторизации |
| id | ✅ | int | ID сервера |
| username | ✅ | string | Имя пользователя IPMI для удаления |
Пример запроса
Пример успешного ответа
eq/sensors¶
Запрашивает текущие показания датчиков (температура, напряжение, обороты) для указанного сервера.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: sensors |
| token | ✅ | string | Токен авторизации |
| id | ✅ | int | Уникальный идентификатор сервера |
Пример запроса
Пример успешного ответа
eq/show¶
Возвращает данные о сервере и оборудовании.
HTTP-метод: GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: show |
| token | ✅ | string | Токен авторизации |
| id | ✅ | int | ID сервера |
Пример запроса
Пример успешного ответа
{
"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": ""
}
eq/status¶
Получает статус сервера по ID.
HTTP-метод: GET
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: status |
| token | ✅ | string | Токен авторизации |
| id | ✅ | int | ID сервера |
Пример запроса
Пример успешного ответа
eq/stop_novnc¶
Прерывает сессию NoVNC консоли для указанного сервера.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: stop_novnc |
| token | ✅ | string | Токен авторизации |
| id | ✅ | int | Идентификатор сервера |
Пример запроса
Пример успешного ответа
eq/unit_reset¶
Запрашивает сброс IPMI сервера.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: unit_reset |
| token | ✅ | string | Токен авторизации |
| id | ✅ | int | ID сервера |
Пример запроса
Пример успешного ответа
eq/update_servers¶
Обновляет список активных серверов для текущего токена, проверяя статусы в биллинге и добавляя новые серверы в сессию.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: update_servers |
| token | ✅ | string | Токен авторизации для проверки прав доступа |
Пример запроса
Пример успешного ответа
{
"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"
}
}