mcpField
V
vultr

vultr

github.com/evolv3-ai其他140 次安装14 周前更新
代码仓库

关于 vultr

使用 vultr-cli 和 SSH 部署、管理 Vultr 服务器的技能,涵盖参数收集、实例创建与连接验证,也提供 Kubernetes 自动扩缩容步骤。

主要功能

  1. 01收集部署所需参数
  2. 02按用途选择服务器配置
  3. 03创建实例和防火墙组
  4. 04验证 SSH 连接
  5. 05说明 VKE 节点自动扩缩容

适用场景

  1. 01为 Coolify 或 Kasm 部署 Vultr 服务器
  2. 02按工作负载选择 Vultr 套餐
  3. 03创建支持自动扩缩容的 Kubernetes 集群

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/evolv3-ai/vibe-skills --skill vultr

安装后在 Claude Code 中输入/vultr确认已加载。

附带文件assets/env-templatereferences/OPERATIONS.md

详细介绍

Vultr 基础设施

状态:已可用于生产环境 | 依赖项:vultr-cli、SSH 密钥对


导航

  • 操作、故障排查、配置和费用概览:references/OPERATIONS.md

步骤 0:收集所需信息(必须)

停止。在运行任何部署命令之前,先向用户收集所有参数。

复制此清单,并确认每一项:

Required Parameters:
- [ ] SERVER_NAME      - Unique name for this server
- [ ] VULTR_REGION     - Region (ewr, ord, dfw, lax, lhr, fra, sgp, etc.)
- [ ] VULTR_PLAN       - Plan ID (see profiles below)
- [ ] SSH_KEY_NAME     - Name of SSH key in Vultr
- [ ] SSH_KEY_PATH     - Path to local SSH private key (default: ~/.ssh/id_rsa)

Deployment Purpose (determines recommended profile):
- [ ] Purpose: coolify / kasm / both / custom
      coolify → vc2-2c-4gb ($24/mo)
      kasm    → vc2-4c-8gb ($48/mo)
      both    → vc2-8c-32gb ($192/mo)
      custom  → Ask for specific plan

按用途推荐的配置:

用途计划vCPURAM月费
coolifyvc2-2c-4gb24GB$24
kasmvc2-4c-8gb48GB$48
bothvc2-8c-32gb832GB$192

在确认所有参数之前,不要继续执行先决条件步骤。


先决条件

使用此技能之前,请确认以下事项:

1. 已安装 Vultr CLI
vultr-cli version

如果未安装,请使用以下命令安装:

# macOS
brew install vultr/vultr-cli/vultr-cli

# Linux (download binary)
curl -sL https://github.com/vultr/vultr-cli/releases/latest/download/vultr-cli_linux_amd64.tar.gz | tar xz
sudo mv vultr-cli /usr/local/bin/

# Windows (scoop)
scoop bucket add vultr https://github.com/vultr/scoop-vultr.git
scoop install vultr-cli

# Go install
go install github.com/vultr/vultr-cli/v3@latest
2. Vultr 账户和 API 密钥

如果你还没有 Vultr 账户:

注册:https://www.vultr.com/?ref=YOUR_REFERRAL_CODE

披露:这是一个推荐链接。你将获得 $100 额度;技能作者会在你消费 $25 后获得 $35。使用此链接有助于支持这些技能的开发。

获取 API 密钥:https://my.vultr.com/settings/#settingsapi

创建具有 All 权限的个人访问令牌。

3. 已配置 vultr-cli
vultr-cli account

如果显示错误,请使用以下命令进行配置:

# Set API key
vultr-cli config set api-key YOUR_API_KEY_HERE

# Or via environment variable
export VULTR_API_KEY="your_api_key_here"
vultr-cli account
4. SSH 密钥对
ls ~/.ssh/id_rsa.pub

如果缺少密钥,请使用以下命令生成:

ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa -N ""
5. 已将 SSH 密钥上传到 Vultr
vultr-cli ssh-key list

如果为空,请使用以下命令上传:

vultr-cli ssh-key create --name "my-key" --key "$(cat ~/.ssh/id_rsa.pub)"
6. 测试身份验证
vultr-cli regions list

如果失败:API 密钥可能无效。请创建新的密钥。


服务配置

Coolify/Kasm 部署
配置计划vCPURAM磁盘月费
coolifyvc2-2c-4gb24GB80GB$24
kasmvc2-4c-8gb48GB160GB$48
bothvc2-8c-32gb832GB640GB$192
高频型(NVMe,性能最佳)
配置计划vCPURAM磁盘月费
hf-smallvhf-2c-4gb24GB64GB NVMe$24
hf-mediumvhf-4c-16gb416GB256GB NVMe$72
hf-largevhf-6c-24gb624GB384GB NVMe$108
AMD 高性能型(专用 vCPU)
计划vCPURAM磁盘月费
vhp-2c-4gb-amd24GB60GB NVMe$30
vhp-4c-8gb-amd48GB120GB NVMe$60
vhp-8c-16gb-amd816GB240GB NVMe$120

部署步骤

步骤 1:设置环境变量
export VULTR_REGION="ewr"                  # See regions below
export VULTR_PLAN="vc2-2c-4gb"             # See profiles above
export VULTR_OS_ID="1743"                  # Ubuntu 22.04 x64
export SERVER_NAME="my-server"
export SSH_KEY_NAME="my-key"
区域选项
代码位置区域
ewr新泽西州美国东部
ord芝加哥美国中部
dfw达拉斯美国南部
lax洛杉矶美国西部
sea西雅图美国西北部
atl亚特兰大美国东南部
mia迈阿密美国东南部
yto多伦多加拿大
lhr伦敦英国
ams阿姆斯特丹荷兰
fra法兰克福德国
cdg巴黎法国
nrt东京日本
sgp新加坡亚洲
syd悉尼澳大利亚
blr班加罗尔印度

运行 vultr-cli regions list 查看完整列表。

操作系统 ID 参考
操作系统 ID操作系统
1743Ubuntu 22.04 x64
2136Ubuntu 24.04 x64
477Debian 12 x64
447Debian 11 x64
215CentOS 7 x64

运行 vultr-cli os list 查看完整列表。

步骤 2:获取 SSH 密钥 ID
SSH_KEY_ID=$(vultr-cli ssh-key list | grep "$SSH_KEY_NAME" | awk '{print $1}')
echo "SSH Key ID: $SSH_KEY_ID"

# Verify
if [ -z "$SSH_KEY_ID" ]; then
  echo "ERROR: SSH key '$SSH_KEY_NAME' not found. Upload it first."
  exit 1
fi
步骤 3:创建防火墙组
# Create firewall group
FW_GROUP_ID=$(vultr-cli firewall group create --description "my-firewall" | grep -oP 'ID: \K\S+')
echo "Firewall Group ID: $FW_GROUP_ID"

# Allow SSH
vultr-cli firewall rule create --id "$FW_GROUP_ID" --protocol tcp --port 22 --subnet 0.0.0.0/0

# Allow HTTP/HTTPS
vultr-cli firewall rule create --id "$FW_GROUP_ID" --protocol tcp --port 80 --subnet 0.0.0.0/0
vultr-cli firewall rule create --id "$FW_GROUP_ID" --protocol tcp --port 443 --subnet 0.0.0.0/0

# Allow Coolify ports
vultr-cli firewall rule create --id "$FW_GROUP_ID" --protocol tcp --port 8000 --subnet 0.0.0.0/0
vultr-cli firewall rule create --id "$FW_GROUP_ID" --protocol tcp --port "6001:6002" --subnet 0.0.0.0/0

# Allow KASM ports
vultr-cli firewall rule create --id "$FW_GROUP_ID" --protocol tcp --port 8443 --subnet 0.0.0.0/0
vultr-cli firewall rule create --id "$FW_GROUP_ID" --protocol tcp --port 3389 --subnet 0.0.0.0/0
vultr-cli firewall rule create --id "$FW_GROUP_ID" --protocol tcp --port "3000:4000" --subnet 0.0.0.0/0
步骤 4:创建实例
vultr-cli instance create \
  --region "$VULTR_REGION" \
  --plan "$VULTR_PLAN" \
  --os "$VULTR_OS_ID" \
  --ssh-keys "$SSH_KEY_ID" \
  --firewall-group "$FW_GROUP_ID" \
  --label "$SERVER_NAME" \
  --hostname "$SERVER_NAME"
步骤 5:等待并获取实例 IP
# Wait for instance to be ready
echo "Waiting for instance to be active..."
sleep 30

# Get instance ID
INSTANCE_ID=$(vultr-cli instance list | grep "$SERVER_NAME" | awk '{print $1}')
echo "Instance ID: $INSTANCE_ID"

# Get IP address
SERVER_IP=$(vultr-cli instance get "$INSTANCE_ID" | grep "Main IP" | awk '{print $3}')
echo "SERVER_IP=$SERVER_IP"
步骤 6:等待服务就绪
# Wait for SSH to be available (typically 60-90 seconds)
echo "Waiting for server to be ready..."
until ssh -o ConnectTimeout=5 -o StrictHostKeyChecking=no root@$SERVER_IP "echo connected" 2>/dev/null; do
  sleep 5
done
echo "Server is ready!"
步骤 7:验证连接
ssh root@$SERVER_IP "uname -a && free -h && df -h /"
步骤 8:为后续技能输出结果
# Vultr only offers x86 architecture
SERVER_ARCH="amd64"

# Save to .env.local for downstream skills
echo "SERVER_IP=$SERVER_IP" >> .env.local
echo "SSH_USER=root" >> .env.local
echo "SSH_KEY_PATH=~/.ssh/id_rsa" >> .env.local
echo "SERVER_ARCH=$SERVER_ARCH" >> .env.local
echo "COOLIFY_SERVER_IP=$SERVER_IP" >> .env.local
echo "KASM_SERVER_IP=$SERVER_IP" >> .env.local

echo ""
echo "Instance deployed successfully!"
echo "  IP: $SERVER_IP"
echo "  Arch: $SERVER_ARCH"
echo "  SSH: ssh root@$SERVER_IP"

验证部署

ssh root@$SERVER_IP "echo 'Vultr instance connected successfully'"

Kubernetes 自动扩缩容

Vultr Kubernetes Engine(VKE)支持节点池自动扩缩容。

创建启用自动扩缩容的 VKE 集群
# Create cluster
vultr-cli kubernetes create \
  --region "$VULTR_REGION" \
  --version "v1.28.2+1" \
  --label "my-k8s"

# Get cluster ID
CLUSTER_ID=$(vultr-cli kubernetes list | grep "my-k8s" | awk '{print $1}')

# Create autoscaling node pool
vultr-cli kubernetes node-pool create "$CLUSTER_ID" \
  --plan "vc2-2c-4gb" \
  --label "worker-pool" \
  --quantity 2 \
  --min-nodes 1 \
  --max-nodes 5 \
  --auto-scaler true
工作原理
  • 工作负载增加时,Vultr 会自动添加节点
  • 需求减少时,会移除节点
  • 指定最小节点数和最大节点数,以控制扩缩容范围

清理

警告:此操作具有破坏性,且无法撤销。

# Delete instance
INSTANCE_ID=$(vultr-cli instance list | grep "$SERVER_NAME" | awk '{print $1}')
vultr-cli instance delete "$INSTANCE_ID"

# Delete firewall group
FW_GROUP_ID=$(vultr-cli firewall group list | grep "my-firewall" | awk '{print $1}')
vultr-cli firewall group delete "$FW_GROUP_ID"

# Optionally delete SSH key
# vultr-cli ssh-key delete "$SSH_KEY_ID"

运维

故障排除、最佳实践、配置变量和成本快照见 references/OPERATIONS.md。


日志集成

执行基础设施操作时,请将日志记录到集中式系统:

# After provisioning
log_admin "SUCCESS" "operation" "Provisioned Vultr instance" "id=$INSTANCE_ID provider=Vultr"

# After destroying
log_admin "SUCCESS" "operation" "Deleted Vultr instance" "id=$INSTANCE_ID"

# On error
log_admin "ERROR" "operation" "Vultr deployment failed" "error=$ERROR_MSG"

完整的日志记录文档请参阅 admin 技能中的 references/logging.md。


参考资料

评论

支持 Markdown