Часто задаваемые вопросы по использованию API Invapi¶
В этой статье
Алгоритм заказа моментального сервера с помощью eq/order_instance¶
-
Cоздайте клиентский API-ключ;
-
Определитесь с локацией заказа сервера: RU/NL/US/FI/DE/IS/TR/UK/ES/IT/PL/CH (Россия, Нидерланды, США, Финляндия, Германия, Исландия, Турция, Великобритания, Испания, Италия, Польша, Швейцария);
-
С помощью запроса presets/list определите ID пресета для развертывания.
Этот ID далее будет использоваться как
instance_idилиpreset). Например при"id": 108значенияinstance_id=108иpreset=108; -
С помощью запроса os/list определите
os_idилиos_nameнужной к установке операционной системы, используя ID инстанса из п.3 или ее алиас. Например для Ubuntu 22.04 это значение будет определено в ответе на запрос как"id": 187и"alias": ubuntu. Также ID ОС и информацию, на каких типах серверов она доступна, можно найти в списке текущих поддерживаемых ОС;Примечание
Если вы не хотите ставить на сервер ОС при его развертывании, укажите позже параметр
own_os=1. -
С помощью запроса software/list определите для данного инстанса возможное к развертыванию программное обеспечение и получите его ID (далее параметр
soft_id). Например для СMS Wodrpress в выводе запроса это значение будет"id": 20. Доступное к установке ПО и его параметры для установки (id, тип сервера, необходимые объемы памяти и диска, число ядер процессора и т.п.) можно найти в списке поддерживаемого ПО;Примечание
Вы можете не предустанавливать ПО при развертывании, если хотите сделать это позже самостоятельно.
-
С помощью запроса traffic_plans/list получите ID тарифного плана сетевого трафика для вашего сервера. Например для плана
3Tb traffic (1Gbps) VMвызов вернет значение"id": 25; -
Получите сессионный токен
$HOSTKEY_TOKENчерез запрос auth/login; -
Закажите сервер, вставив в запрос eq/order_instance данные полученые в п.п. 2-7. Обязательно укажите ваш пароль
root, период оплаты сервераdeploy_period(на месяц, квартал, 6 месяцев или за год), необходимость уведомления на почту о развертыванииdeploy_notify(рекомендуем ставитьtrueпо умолчанию).
По желанию можно указать дополнительные параметры, описаные в вызове eq/order_instance.
Ниже приведен пример заказа сервера с Wordpress (id=20) на Debian 11 (id=108):
пример POST-запроса заказа моментального сервера, cURL
curl -s "https://invapi.hostkey.ru/eq.php" -X POST \
--data "action=order_instance" \
--data "token=eeee51003b1d81d2eca65660735c0531" \
--data "deploy_period=monthly" \
--data "deploy_notify=true" \
--data "preset=108" \
--data "location_name=NL" \
--data "os_id=180" \
--data "soft_id=20" \
--data "traffic_plan=25" \
--data "root_pass=mdLus8Ng" \
Пример положительного ответа
Invapi выберет/создаст соответствующий сервер в определенном месте и продолжит его развертывание. Перед любой установкой будет произведена проверка наличия средств на кредитном счете (при установленном параметре автоплатежей с кредитного баланса) или выставлен счет на оплату. Если установка пройдет успешно, новый сервер будет привязан к учетной записи клиента. По запросу клиент будет уведомлен по электронной почте. Все платные лицензии будут добавлены в качестве дополнений к заказу.
Примечание
При несовместимости выбранной операционной системы и устанавливаемого ПО, вам выдаст сообщение вида:
{
"result": -1,
"error": "reinstall: extra software Odoo (#49) is not compatible with Ubuntu 22.04"
}
Вам необходимо будет выбрать другую операционную систему (задать другой параметр os_id).
Внимание
Приступить к использованию сервера можно после получения инфрормации об окончании его развертывания по электронной почте или появления статуса Active в разделе Мои сервера панели управления Invapi. При возникновении сбоя в процессе развертывания сервера, на почту будет отправлено уведомление. Развертывание может занять от 20 минут и выше.
Вы можете отслеживать установку и ее статус используя асинхронные действия.
Установка будет завершена успешно, когда вы получите сообщение ассинхронного действия такого рода:
Переустановка сервера через eq/order_instance¶
Переустановка сервера производится аналогично его заказу и отличается только передачей в запросе eq/order_instance дополнительного параметра id - ID переустанавливаемого сервера из Invapi и неиспользовании параметра preset. При переустановке вы можете выбрать другую операционную систему и предустанавливаемое программное обеспечение или сделать переустановку "с чистого листа", установив параметр own_os=1 (при это обязательно задать os_id = 0).
Внимание
Параметр location_name является обязательным даже при переустановке. Вы должны указать текущую локацию сервера (например, NL или RU), иначе API может вернуть ошибку совместимости ОС.
POST-запрос для переустановки, cURL
curl -s "https://invapi.hostkey.ru/eq.php" -X POST \
--data "action=order_instance" \
--data "token=$HOSTKEY_TOKEN" \
--data "hostname={Имя хоста}" \
--data "os_id={ID операционной системы}" \
--data "soft_id={ID программного обеспечения}" \
--data "root_pass={пароль root}" \
--data "ssh_key={открытый SSH ключ}" \
--data "post_install_script=" \
--data "own_os=" \
--data "root_size=100" \
--data "location_name={локация сервера с заданным ID}" \
--data "id={ID сервера из Invapi}" // Наличие ID запустит процесс переустановки сервера.
Внимание
Если при запросе переустановки вам выдало сообщение, что сервер с таким ID не найден, обновите список серверов, привязанных к сессионному токену, выполнив запрос eq/update_servers.
Примечание
При несовместимости выбранной операционной системы и устанавливаемого ПО, вам выдаст сообщение вида:
{
"result": -1,
"error": "reinstall: extra software Odoo (#49) is not compatible with Ubuntu 22.04"
}
Вам необходимо будет выбрать другую операционную систему (задать другой параметр os_id).
Внимание
Вы не можете запустить новую переустановку, если не закончен процесс предыдущей. Иначе вы получите предупреждение:
Например мы хотим переставить наш сервер из предыдущего примера на Rocky Linux 9 (id=205) и Grafana (id=18). Запрос будет следующий:
пример POST-запроса для переустановки, cURL
Пример положительного ответа
Внимание
При переустановке данным способом уведомление об ее успешном окончании на электронную почту не присылается! Вам нужно запомнить и сохранить новый пароль root (или использовать прежний пароль сервера), а информацию о доступе к заказанному ПО смотреть в документации Маркетплейса или непосредственно в карточке сервера панели управления Invapi.
Используя данный асинхронный ключ (поле callback), мы можем отследить процесс переустановки, используя асинхронные действия.