跳转至

Invapi API FAQ

在这篇文章中

使用 eq/order_instance 的即时服务器下单算法

  1. 创建一个 client API key;

  2. 选择服务器位置:NL/US/FI/DE/IS/TR/UK/ES/IT/PL/CH (荷兰、美国、芬兰、德国、冰岛、土耳其、英国、西班牙、意大利、波兰、瑞士);

  3. 使用 presets/list 请求来确定用于部署的 preset ID。

    该 ID 稍后将用作 instance_idpreset。例如,如果 "id": 108,则值为 instance_id=108preset=108;

  4. 使用 os/list 请求来确定您想要安装的操作系统的 os_idos_name,请使用第 3 步中的实例 ID 或其别名。例如,对于 Ubuntu 22.04,此值将在响应中返回为 "id": 187"alias": ubuntu。您也可以在 当前支持的 OS 列表 中找到 OS ID 以及它们适用的服务器类型信息;

    备注

    如果您不想在部署期间安装操作系统,请稍后指定 own_os=1

  5. 使用 software/list 请求来识别该实例可用的软件并获取其 ID(即 soft_id 参数)。例如,对于 WordPress CMS,请求输出中的值为 "id": 20。您可以在 支持的软件列表 中找到可安装软件及其安装参数(ID、服务器类型、所需的 RAM 和磁盘空间、CPU 核心数等);

    备注

    如果您希望稍后手动进行,可以跳过部署期间的软件预装。

  6. 使用 traffic_plans/list 请求获取您服务器的网络流量计划 ID。例如,对于 3Tb traffic (1Gbps) VM 计划,调用将返回 "id": 25;

  7. 通过 auth/login 请求获取会话令牌 $HOSTKEY_TOKEN;

  8. 通过将第 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" \
成功响应示例
{
    "result": "OK",
    "action": "order_instance",
    "invoice": 50062,
    "status": "Paid"
}

Invapi 将在指定位置选择/创建相应的服务器并开始部署。在进行任何安装之前,系统将检查信用余额是否充足(如果启用了 从信用余额自动付款),否则将开具发票。如果安装成功,新服务器将链接到客户的账户。如有需要,将通过电子邮件通知客户。所有已付费的许可证都将作为订单附加项添加。

备注

如果所选操作系统与要安装的软件不兼容,您将收到如下消息:

{
"result": -1,
"error": "reinstall: extra software Odoo (#49) is not compatible with Ubuntu 22.04"
}

您需要选择不同的操作系统(设置不同的 os_id 参数)。

警告

在收到部署完成的电子邮件通知后,或者当 Invapi 控制面板的 My Servers 部分显示 Active 状态时,您就可以开始使用该服务器了。如果服务器部署过程中发生故障,系统将向您的电子邮件发送通知。部署可能需要 20 分钟或更长时间。

您可以使用 异步操作 来监控安装及其状态。

当您收到如下异步操作消息时,表示安装已成功完成:

成功响应示例
{
"result": "OK",
"scope": "Autodeploy completed, check VRI-208-64405",
"context": {
    "action": "deploy_vm",
    "id": "32645",
    "location": "NL",
    "ip": "176.222.34.23",
    "ip_ipmi": "0.0.0.0"
},
"debug": "0",
"key": "9889fcb51255146e04224205c04976e8"
}

通过 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 参数)。

警告

如果之前的流程尚未完成,您无法开始新的重装。否则,您将收到一条警告:

{"result":-1,"error":"another reinstall in progress for XXXXX, please wait"}

例如,假设我们要将之前的示例服务器重装为 Rocky Linux 9 (id=205) 和 Grafana (id=18)。请求如下所示:

重装 POST 请求示例,cURL

curl -s "https://invapi.hostkey.com/eq.php" -X POST \
--data "action=order_instance" \
--data "token=5e731472b19f25c7fe61c9eb5c2ea4e3" \
--data "deploy_notify=true" \
--data "os_id=205" \
--data "soft_id=18" \
--data "root_pass=mnN48Dl@4" \
--data "location_name=NL" \
--data "id=32645"
成功重装响应示例
{
    "result": "OK",
    "action": "order_instance",
    "callback": "e2fbe5f43796d4139983b695271da9aa", // 异步键
    "deploy_status": "reinstall",
    "id": 32645,
    "os_name": "RockyLinux 9",
    "soft_name": "Grafana"
}

警告

使用此方法重装时,完成后不会发送电子邮件通知!您必须记住并保存新的 root 密码(或使用现有的服务器密码),您可以在 Marketplace 文档中或直接在 Invapi 控制面板的服务器卡片中找到已安装软件的访问信息。

通过使用此异步键(callback 字段),我们可以使用 异步操作 来跟踪重装过程。

成功重装响应示例
{
    "result": "OK",
    "scope": "{"result":"deploy_done"}",
    "context": {
        "action": "reinstall_vm",
        "id": "32645",
        "location": "NL",
        "ip": "176.222.34.23",
        "ip_ipmi": "0.0.0.0",
        "reinstall": 1
    },
    "debug": "",
    "key": "a129bad13781bdf5790746064aba0af6"
}
question_mark
Is there anything I can help you with?
question_mark
AI Assistant ×