用 API 简化 Vultr 开机流程
很讨厌很讨厌 vultr 手动开 compute 实例的流程,对我这种只用 zui 低配,大部分配置不会变,频繁开机,用完就删机器的劣质用户来说,太繁琐了。
特别是最近还默认开启 auto backup,点一次 disable 之后弹窗,然后要点一个小得不行的复选框,才能把 disable 按下去。真的每次开机都是一种折磨……
看了下他们家 API 文档,用 API 开机就不用点来点去了。
存取 API 金轮
首先开个 API key


记得开白名单防止别人偷家

每次用 keepassxc-cli 导出到环境变量,其他后现代密码管理器同理:
export VULTR_API_KEY=$(keepassxc-cli show -k ~/db.key -s -a password ~/db.kdbx "api/vultr")
macOS 的话也可以丢 keychain 里:
export VULTR_API_KEY=$(security find-generic-password -s "MY_VULTR_API_TOKEN" -w)
更大胆的话也可以直接(
echo "export VULTR_API_KEY=<YOUR_VULTR_API_TOKEN>" > .vultr-api-key
source .vultr-api-key
DPAPI/kwallet/gnome-keyring/pass 之类的你们比我会用,我就不献丑了
确定机器设置
开一台 vultr 的 compute 实例,我个人需要的是以下设置:
Location (
GET /regions)很多都是当地机场代码,当然也有
sgp–> Singapore 这一奇葩特例Plan
这个和网页上面的是一样的,见下图
我一般只用乞丐版,
vc2-1c-1gb($0.007/h) 和vhp-1c-1gb($0.008/h)OS (
GET /os)Deb12 是
2136, Deb13 是2625.SSH Key (
GET /ssh-keys)先去网页上设置然后 GET 记一下 uuid 就行,也可以干脆用 API 写
Startup Script (
GET /startup-scripts)同上,这个先去网页上设置比较方便
Backup
毫无疑问填
"disabled"IPv6
我用得到,所以是
trueHostname
不写也没关系,默认
vultr
其他要用的时候再去查 API 文档然后补在这里就好了。

构建请求体
实在是没什么好说的,我图省事,直接 curl 解决
curl "https://api.vultr.com/v2/instances" \
-X POST \
-H "Authorization: Bearer ${VULTR_API_KEY}" \
-H "Content-Type: application/json" \
--data '{
"region": "sgp",
"plan": "vhp-1c-1gb",
"label": "YOUR_LABEL",
"os_id": 2136,
"script_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"sshkey_id": ["yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"],
"backups": "disabled",
"enable_ipv6": true,
"hostname": "YOUR_HOSTNAME"
}'
刚开机的时候很多配置都暂时出不来,等会再 GET /instances 一下就可以了。

删机
删的话还是从 webUI 删吧。
当然也可以发一个 DELETE /instances/{instance-id} 也是一个效果。