使用 vultr-cli 在 Vultr 部署后检索实例 ID?
Retrieve the instance ID after deploying at Vultr with the vultr-cli?
我正在使用 vultr-cli 编写进程脚本。我需要在 Vultr 部署一个新的 VPS,执行一些中间步骤,然后在 bash 脚本中销毁 VPS。部署后如何在脚本中检索实例值?有没有办法将信息捕获为 JSON 或直接设置环境变量?
到目前为止,我的脚本如下所示:
#!/bin/bash
## Create an instance. How do I retrieve the instance ID
## for use later in the script?
vultr-cli instance create --plan vc2-1c-1gb --os 387 --region ewr
## With the instance ID, retrieve the main IPv4 address.
## Note: I only want the main IP, but there may be multiple.
vultr-cli instance ipv4 list $INSTANCE_ID
## Perform some tasks here with the IPv4. Assuming I created
## the instance with my SSH key, for example:
scp root@$INSTANCE_IPv4:/var/log/logfile.log ./logfile.log
## Destroy the instance.
vultr-cli instance delete $INSTANCE_ID
vultr-cli 会像这样输出从 API 返回的响应
☁ ~ vultr-cli instance create --plan vc2-1c-1gb --os 387 --region ewr
INSTANCE INFO
ID 87e98eb0-a189-4519-8b4e-fc46bb0a5331
Os Ubuntu 20.04 x64
RAM 1024
DISK 0
MAIN IP 0.0.0.0
VCPU COUNT 1
REGION ewr
DATE CREATED 2021-01-23T17:39:45+00:00
STATUS pending
ALLOWED BANDWIDTH 1000
NETMASK V4
GATEWAY V4 0.0.0.0
POWER STATUS running
SERVER STATE none
PLAN vc2-1c-1gb
LABEL
INTERNAL IP
KVM URL
TAG
OsID 387
AppID 0
FIREWALL GROUP ID
V6 MAIN IP
V6 NETWORK
V6 NETWORK SIZE 0
FEATURES []
因此您可能希望从响应中捕获 ID 及其值。这是一个粗略的例子,但它确实有效。
vultr-cli instance create --plan vc2-1c-1gb --os 387 --region ewr | grep -m1 -w "ID" | sed 's/ID//g' | tr -d " \t\n\r"
我们正在查找具有 ID 的第一行(它将始终是第一行)。然后删除单词 ID,然后删除所有空格和换行符。
你会想做一些类似于你的 ipv4 list
调用的事情。
同样,可能有更好的方法来写出 grep/sed/tr 部分,但这将满足您的需要。希望这对您有所帮助!
我正在使用 vultr-cli 编写进程脚本。我需要在 Vultr 部署一个新的 VPS,执行一些中间步骤,然后在 bash 脚本中销毁 VPS。部署后如何在脚本中检索实例值?有没有办法将信息捕获为 JSON 或直接设置环境变量?
到目前为止,我的脚本如下所示:
#!/bin/bash
## Create an instance. How do I retrieve the instance ID
## for use later in the script?
vultr-cli instance create --plan vc2-1c-1gb --os 387 --region ewr
## With the instance ID, retrieve the main IPv4 address.
## Note: I only want the main IP, but there may be multiple.
vultr-cli instance ipv4 list $INSTANCE_ID
## Perform some tasks here with the IPv4. Assuming I created
## the instance with my SSH key, for example:
scp root@$INSTANCE_IPv4:/var/log/logfile.log ./logfile.log
## Destroy the instance.
vultr-cli instance delete $INSTANCE_ID
vultr-cli 会像这样输出从 API 返回的响应
☁ ~ vultr-cli instance create --plan vc2-1c-1gb --os 387 --region ewr
INSTANCE INFO
ID 87e98eb0-a189-4519-8b4e-fc46bb0a5331
Os Ubuntu 20.04 x64
RAM 1024
DISK 0
MAIN IP 0.0.0.0
VCPU COUNT 1
REGION ewr
DATE CREATED 2021-01-23T17:39:45+00:00
STATUS pending
ALLOWED BANDWIDTH 1000
NETMASK V4
GATEWAY V4 0.0.0.0
POWER STATUS running
SERVER STATE none
PLAN vc2-1c-1gb
LABEL
INTERNAL IP
KVM URL
TAG
OsID 387
AppID 0
FIREWALL GROUP ID
V6 MAIN IP
V6 NETWORK
V6 NETWORK SIZE 0
FEATURES []
因此您可能希望从响应中捕获 ID 及其值。这是一个粗略的例子,但它确实有效。
vultr-cli instance create --plan vc2-1c-1gb --os 387 --region ewr | grep -m1 -w "ID" | sed 's/ID//g' | tr -d " \t\n\r"
我们正在查找具有 ID 的第一行(它将始终是第一行)。然后删除单词 ID,然后删除所有空格和换行符。
你会想做一些类似于你的 ipv4 list
调用的事情。
同样,可能有更好的方法来写出 grep/sed/tr 部分,但这将满足您的需要。希望这对您有所帮助!