Invapi API FAQ¶
在这篇文章中
使用 eq/order_instance 的即时服务器下单算法¶
-
创建一个 client API key;
-
选择服务器位置:NL/US/FI/DE/IS/TR/UK/ES/IT/PL/CH (荷兰、美国、芬兰、德国、冰岛、土耳其、英国、西班牙、意大利、波兰、瑞士);
-
使用 presets/list 请求来确定用于部署的 preset ID。
该 ID 稍后将用作
instance_id或preset。例如,如果"id": 108,则值为instance_id=108和preset=108; -
使用 os/list 请求来确定您想要安装的操作系统的
os_id或os_name,请使用第 3 步中的实例 ID 或其别名。例如,对于 Ubuntu 22.04,此值将在响应中返回为"id": 187和"alias": ubuntu。您也可以在 当前支持的 OS 列表 中找到 OS ID 以及它们适用的服务器类型信息;备注
如果您不想在部署期间安装操作系统,请稍后指定
own_os=1。 -
使用 software/list 请求来识别该实例可用的软件并获取其 ID(即
soft_id参数)。例如,对于 WordPress CMS,请求输出中的值为"id": 20。您可以在 支持的软件列表 中找到可安装软件及其安装参数(ID、服务器类型、所需的 RAM 和磁盘空间、CPU 核心数等);备注
如果您希望稍后手动进行,可以跳过部署期间的软件预装。
-
使用 traffic_plans/list 请求获取您服务器的网络流量计划 ID。例如,对于
3Tb traffic (1Gbps) VM计划,调用将返回"id": 25; -
通过 auth/login 请求获取会话令牌
$HOSTKEY_TOKEN; -
通过将第 2-7 步获得的数据插入到 eq/order_instance 请求中来订购服务器。您必须指定您的
root密码、服务器计费周期deploy_period(按月、按季、6 个月或按年),以及是否希望通过deploy_notify在部署时接收电子邮件通知(我们建议默认将其设置为true)。
可以按照 eq/order_instance 调用中描述的方式指定可选的附加参数。
以下是在 Debian 11 (id=108) 上订购带有 WordPress (id=20) 服务器的示例:
即时服务器下单 cURL POST 请求示例
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" \
Invapi 将在指定位置选择/创建相应的服务器并开始部署。在进行任何安装之前,系统将检查信用余额是否充足(如果启用了 从信用余额自动付款),否则将开具发票。如果安装成功,新服务器将链接到客户的账户。如有需要,将通过电子邮件通知客户。所有已付费的许可证都将作为订单附加项添加。
备注
如果所选操作系统与要安装的软件不兼容,您将收到如下消息:
{
"result": -1,
"error": "reinstall: extra software Odoo (#49) is not compatible with Ubuntu 22.04"
}
您需要选择不同的操作系统(设置不同的 os_id 参数)。
警告
在收到部署完成的电子邮件通知后,或者当 Invapi 控制面板的 My Servers 部分显示 Active 状态时,您就可以开始使用该服务器了。如果服务器部署过程中发生故障,系统将向您的电子邮件发送通知。部署可能需要 20 分钟或更长时间。
您可以使用 异步操作 来监控安装及其状态。
当您收到如下异步操作消息时,表示安装已成功完成:
通过 eq/order_instance 重装服务器¶
重装服务器的操作与订购类似;区别仅在于在 eq/order_instance 请求中传递一个额外的 id 参数(即 Invapi 中要重装的服务器 ID),并且不使用 preset 参数。在重装期间,您可以选择不同的操作系统和预装软件,或者通过设置 own_os=1 参数来进行“干净”重装(在这种情况下,您必须设置 os_id = 0)。
警告
即使在重装期间,location_name 参数也是强制性的。您必须指定当前的服务器位置(例如 NL 或 US),否则 API 可能会返回操作系统兼容性错误。
重装 cURL POST 请求示例
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}" // 存在 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 密码(或使用现有的服务器密码),您可以在 Marketplace 文档中或直接在 Invapi 控制面板的服务器卡片中找到已安装软件的访问信息。
通过使用此异步键(callback 字段),我们可以使用 异步操作 来跟踪重装过程。