Invapi API FAQ¶
En este artículo
Algoritmo de pedido instantáneo de servidores con eq/order_instance¶
-
Cree una client API key;
-
Elija la ubicación del servidor: NL/US/FI/DE/IS/TR/UK/ES/IT/PL/CH (Países Bajos, EE. UU., Finlandia, Alemania, Islandia, Turquía, Reino Unido, España, Italia, Polonia, Suiza);
-
Utilice la solicitud presets/list para determinar el ID del preset para el despliegue.
Este ID se utilizará posteriormente como
instance_idopreset. Por ejemplo, si"id": 108, los valores soninstance_id=108ypreset=108; -
Utilice la solicitud os/list para determinar el
os_idoos_namedel sistema operativo que desea instalar, utilizando el ID de instancia del paso 3 o su alias. Por ejemplo, para Ubuntu 22.04, este valor se devolverá en la respuesta como"id": 187y"alias": ubuntu. También puede encontrar IDs de SO e información sobre en qué tipos de servidor están disponibles en la lista de sistemas operativos compatibles actualmente;Nota
Si no desea instalar un sistema operativo durante el despliegue, especifique
own_os=1más adelante. -
Utilice la solicitud [software/list](../apidocs/software.md] para identificar el software disponible para esta instancia y obtener su ID (el parámetro
soft_id). Por ejemplo, para el CMS WordPress, el valor en la salida de la solicitud será"id": 20. Puede encontrar una lista de software instalable y sus parámetros de instalación (ID, tipo de servidor, RAM y espacio en disco requeridos, número de núcleos de CPU, etc.) en la lista de software compatible;Nota
Puede omitir la preinstalación de software durante el despliegue si desea hacerlo manualmente más tarde.
-
Utilice la solicitud traffic_plans/list para obtener el ID del plan de tráfico de red para su servidor. Por ejemplo, para el plan
3Tb traffic (1Gbps) VM, la llamada devolverá"id": 25; -
Obtenga un token de sesión
$HOSTKEY_TOKENa través de la solicitud auth/login; -
Realice el pedido del servidor insertando los datos obtenidos en los pasos 2-7 en la solicitud eq/order_instance. Debe especificar su contraseña
root, el periodo de facturación del servidordeploy_period(mensual, trimestral, semestral o anual) y si desea una notificación por correo electrónico tras el despliegue mediantedeploy_notify(recomendamos establecer esto entruepor defecto).
Se pueden especificar parámetros adicionales opcionales como se describe en la llamada eq/order_instance.
A continuación, se muestra un ejemplo de pedido de un servidor con WordPress (id=20) en Debian 11 (id=108):
Ejemplo de solicitud POST para el pedido instantáneo de servidores, cURL
curl -s "https://invapi.hostkey.com/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" \
Ejemplo de respuesta positiva
Invapi seleccionará/creará el servidor correspondiente en la ubicación especificada y procederá con el despliegue. Antes de cualquier instalación, se realizará una comprobación de fondos suficientes en el saldo de crédito (si están habilitados los pagos automáticos desde el saldo de crédito) o se emitirá una factura. Si la instalación es exitosa, el nuevo servidor se vinculará a la cuenta del cliente. El cliente será notificado por correo electrónico si así lo solicita. Todas las licencias pagadas se añadirán como complementos del pedido.
Nota
Si existe una incompatibilidad entre el sistema operativo seleccionado y el software que se está instalando, recibirá un mensaje como este:
{
"result": -1,
"error": "reinstall: extra software Odoo (#49) is not compatible with Ubuntu 22.04"
}
Deberá seleccionar un sistema operativo diferente (establezca un parámetro os_id distinto).
Atención
Puede comenzar a utilizar el servidor tras recibir una notificación por correo electrónico de que el despliegue ha finalizado o cuando aparezca el estado Active en la sección My Servers del panel de control de Invapi. Si ocurre un error durante el proceso de despliegue del servidor, se enviará una notificación a su correo electrónico. El despliegue puede tardar 20 minutos o más.
Puede monitorizar la instalación y su estado utilizando acciones asíncronas.
La instalación se completará con éxito cuando reciba un mensaje de acción asíncrona como este:
Reinstalación de un servidor mediante eq/order_instance¶
La reinstalación de un servidor se realiza de forma similar al pedido de uno; la única diferencia es pasar un parámetro id adicional en la solicitud eq/order_instance—el ID del servidor que se va a reinstalar desde Invapi—y no utilizar el parámetro preset. Durante una reinstalación, puede elegir un sistema operativo y software preinstalado diferentes, o realizar una reinstalación "limpia" estableciendo el parámetro own_os=1 (en cuyo caso debe establecer os_id = 0).
Atención
El parámetro location_name es obligatorio incluso durante una reinstalación. Debe especificar la ubicación actual del servidor (por ejemplo, NL o US); de lo contrario, la API puede devolver un error de compatibilidad del SO.
Solicitud POST para la reinstalación, cURL
curl -s "https://invapi.hostkey.com/eq.php" -X POST \
--data "action=order_instance" \
--data "token=$HOSTKEY_TOKEN" \
--data "hostname={Hostname}" \
--data "os_id={OS ID}" \
--data "soft_id={Software ID}" \
--data "root_pass={root password}" \
--data "ssh_key={public SSH key}" \
--data "post_install_script=" \
--data "own_os=" \
--data "root_size=100" \
--data "location_name={Server location with specified ID}" \
--data "id={Invapi Server ID}" // La presencia del ID activa el proceso de reinstalación del servidor.
Atención
Si recibe un mensaje indicando que no se ha encontrado ningún servidor con ese ID durante una solicitud de reinstalación, actualice la lista de servidores vinculados a su token de sesión llamando a eq/update_servers.
Nota
Si existe una incompatibilidad entre el sistema operativo seleccionado y el software que se está instalando, recibirá un mensaje como este:
{
"result": -1,
"error": "reinstall: extra software Odoo (#49) is not compatible with Ubuntu 22.04"
}
Deberá seleccionar un sistema operativo diferente (establezca un parámetro os_id distinto).
Atención
No puede iniciar una nueva reinstalación si el proceso anterior no ha finalizado. De lo contrario, recibirá una advertencia:
Por ejemplo, supongamos que queremos reinstalar nuestro servidor del ejemplo anterior a Rocky Linux 9 (id=205) y Grafana (id=18). La solicitud sería la siguiente:
Ejemplo de solicitud POST para la reinstalación, cURL
Ejemplo de respuesta positiva
Atención
¡Cuando se reinstala utilizando este método, no se envía ninguna notificación por correo electrónico al completarse con éxito! Debe recordar y guardar la nueva contraseña root (o utilizar la contraseña existente del servidor), y puede encontrar la información de acceso para el software instalado en la documentación de Marketplace o directamente en la ficha del servidor dentro del panel de control de Invapi.
Al utilizar esta clave asíncrona (el campo callback), podemos realizar un seguimiento del proceso de reinstalación mediante acciones asíncronas.