mcpField
C
contabo

contabo

github.com/evolv3-ai云与 DevOps141 次安装14 周前更新
代码仓库

关于 contabo

contabo 是一项通过 cntb CLI 管理 Contabo 基础设施的运维技能,面向需要配置和部署 VPS 或对象存储的用户。它提供部署前参数核对、实例创建与验证步骤,并强调凭据处理和清理风险。

主要功能

  1. 01核对部署所需参数及服务器配置
  2. 02通过 cntb CLI 创建和检查 VPS
  3. 03配置区域、产品及 SSH 公钥
  4. 04创建带自动扩容上限的对象存储
  5. 05提供连接验证与实例取消步骤
  6. 06说明凭据存放及操作日志要求

适用场景

  1. 01按用途配置并部署 Contabo VPS
  2. 02检查实例状态、IP 和 SSH 连接
  3. 03创建设有容量上限的对象存储
  4. 04排查 cntb CLI 凭据或部署问题

安装

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

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

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

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

详细介绍

Contabo 基础设施

严重警告:密钥和 .env

  • 切勿将有效的 .env 文件或凭据存放在任何 skill 文件夹中。
  • .env.template 文件只能放在 skill 中的 assets/ 目录内。
  • 将有效密钥存放在 ~/.admin/.env 中,并从该位置引用。

状态:可用于生产环境 | 依赖项:cntb CLI、SSH 密钥对


导航

  • 运维、故障排除、配置和成本概览:references/OPERATIONS.md

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

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

复制此清单并逐项确认:

Required Parameters:
- [ ] SERVER_NAME        - Unique name for this server
- [ ] CONTABO_REGION     - Region (EU, US-central, US-east, US-west, SIN, JPN, AUS)
- [ ] CONTABO_PRODUCT_ID - Product/plan ID (see profiles below)
- [ ] SSH_KEY_PATH       - Path to SSH private key (default: ~/.ssh/id_rsa)

Deployment Purpose (determines recommended profile):
- [ ] Purpose: coolify / kasm / both / custom
      coolify → V39 (Cloud VPS 10 SP, €5/mo)
      kasm    → V45 (Cloud VPS 20 SP, €8/mo)
      both    → V46 (Cloud VPS 30, €14/mo)
      custom  → Ask for specific product ID

按用途推荐的配置:

用途产品 ID套餐vCPU内存月费
coolifyV39Cloud VPS 10 SP48GB€5
kasmV45Cloud VPS 20 SP618GB€8
两者V46Cloud VPS 30824GB€14

确认所有参数后,才能继续执行前置要求。


前置要求

使用此 skill 前,请确认以下事项:

1. 已安装 Contabo CLI
cntb version

注意:CLI 使用 cntb version(不带 --)。cntb --version 不是有效标志。

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

# Linux / WSL
curl -sL https://github.com/contabo/cntb/releases/latest/download/cntb_linux_amd64.tar.gz | tar xz
sudo mv cntb /usr/local/bin/

# macOS
curl -sL https://github.com/contabo/cntb/releases/latest/download/cntb_darwin_amd64.tar.gz | tar xz
sudo mv cntb /usr/local/bin/

# Windows (cmd / Git Bash)
curl -L -o "%TEMP%\cntb.zip" "https://github.com/contabo/cntb/releases/latest/download/cntb_windows_amd64.zip"
unzip -o "%TEMP%\cntb.zip" -d "%TEMP%\cntb-extract"
copy "%TEMP%\cntb-extract\cntb.exe" "%USERPROFILE%\.local\bin\cntb.exe"

Windows 注意事项:确保目标目录(例如 %USERPROFILE%\.local\bin)已加入 PATH。由于执行策略限制,使用 PowerShell 的 Invoke-WebRequest / Expand-Archive 可能会失败。

2. Contabo 账户和 API 凭据

如果你没有 Contabo 账户:

在此注册:https://contabo.com/?ref=YOUR_REFERRAL_CODE

披露:这是 CJ Affiliate 计划中的推荐链接。skill 作者可能会获得 $25-$250 的佣金。使用此链接有助于支持这些 skill 的开发。

获取 API 凭据:https://my.contabo.com/api/details

你需要:

  • 客户端 ID(OAuth2)
  • 客户端密钥(OAuth2)
  • API 用户名(你的电子邮件地址)
  • API 密码(你的账户密码或生成的密码)
3. 已配置 cntb CLI
cntb get instances

如果出现错误,请使用 set-credentials 进行配置(写入 ~/.cntb.yaml):

cntb config set-credentials \
  --oauth2-clientid "your_client_id" \
  --oauth2-client-secret "your_client_secret" \
  --oauth2-user "your_email" \
  --oauth2-password 'your_password'

重要:请使用 cntb config set-credentials,而不是环境变量。其他文档中提到的 CNTB_OAUTH2_* 环境变量不可靠,可能导致 clientId is empty 错误。配置文件方式(Linux 上为 ~/.cntb.yaml,Windows 上为 %USERPROFILE%\.cntb.yaml)是唯一可靠的方法。

密码中的特殊字符:如果密码包含 *、^、! 或其他 shell 元字符,请用单引号括起,以防止 shell 展开。

验证配置是否已保存:

cntb config view
4. SSH 密钥对
ls ~/.ssh/id_rsa.pub

如果尚未生成,请使用以下命令生成:

ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa -N ""
5. SSH 密钥可用

与其他提供商不同,Contabo 要求你在创建实例时,通过 --sshKeys 参数指定 SSH 密钥,并提供实际的公钥内容。

cat ~/.ssh/id_rsa.pub
6. 测试身份验证
cntb get datacenters

如果失败:凭据可能不正确。请在 https://my.contabo.com/api/details 验证。


服务配置

Coolify/Kasm 部署 — 超值之选
配置套餐vCPU内存磁盘月费
coolifyCloud VPS 10 SP48GB100GB€5
kasmCloud VPS 20 SP618GB150GB€8
bothCloud VPS 30824GB200GB€14
标准套餐(更多存储空间)
配置套餐vCPURAM磁盘月费
standard-smallCloud VPS S48GB200GB SSD€8
standard-mediumCloud VPS M616GB400GB SSD€14
standard-largeCloud VPS L830GB800GB SSD€26
standard-xlCloud VPS XL1060GB1600GB SSD€39
价格对比——为什么选择 Contabo?
提供商6 vCPU,16-18GB RAM月费
Contabo VPS 20 SP6 vCPU,18GB€8
Hetzner CX428 vCPU,16GB€20
DigitalOcean8 vCPU,16GB$96
Vultr6 vCPU,16GB$96
Linode6 vCPU,16GB$96

与大多数竞争对手相比,Contabo 的性价比高出 5-10 倍。


部署步骤

第 1 步:设置环境变量
export CONTABO_REGION="EU"                 # EU, US-central, US-east, US-west, SIN, JPN, AUS
export CONTABO_PRODUCT_ID="V48"            # See product IDs below (V48 verified working)
export SERVER_NAME="my-server"
区域选项
代码位置区域
EU德国(纽伦堡)欧洲
US-central密苏里州圣路易斯美国中部
US-east纽约美国东部
US-west西雅图美国西部
SIN新加坡亚洲
JPN东京日本
AUS悉尼澳大利亚

运行 cntb get datacenters 查看完整列表。

产品 ID 参考
产品 ID套餐vCPURAM磁盘价格状态
V12VPS S NVMe48GB100GB€5✅ 已验证
V48VPS M (Cloud VPS 2 SSD)616GB400GB€14✅ 已验证
V92Cloud VPS 10 SSD48GB150GB~€5✅ 已验证
V101Cloud VPS 40 SSD1248GB500GB~€20✅ 已验证
V35Cloud VPS 146GB100GB€4.50未测试
V39Cloud VPS 10 SP48GB100GB NVMe€5未测试
V45Cloud VPS 20 SP618GB150GB NVMe€8⚠️ 可能无法使用
V46Cloud VPS 30824GB200GB€14未测试
V47Cloud VPS S48GB200GB SSD€8未测试
V49Cloud VPS L830GB800GB SSD€26未测试
V50Cloud VPS XL1060GB1600GB SSD€39未测试

重要:Contabo 经常调整产品 ID。运行 cntb get products --productType vps 获取当前列表。已验证可用(2026 年 2 月):V12、V48、V92、V101。

第 2 步:创建实例
# Get the SSH public key content
SSH_KEY_CONTENT=$(cat ~/.ssh/id_rsa.pub)

# Create instance
cntb create instance \
  --productId "$CONTABO_PRODUCT_ID" \
  --region "$CONTABO_REGION" \
  --displayName "$SERVER_NAME" \
  --imageId "ubuntu-22.04" \
  --sshKeys "$SSH_KEY_CONTENT"
第 3 步:获取实例详情
# List instances to get the ID
INSTANCE_ID=$(cntb get instances --output json | jq -r '.[] | select(.displayName=="'"$SERVER_NAME"'") | .instanceId')
echo "Instance ID: $INSTANCE_ID"

# Get instance details
cntb get instance "$INSTANCE_ID"

# Get IP address
SERVER_IP=$(cntb get instance "$INSTANCE_ID" --output json | jq -r '.ipConfig.v4.ip')
echo "SERVER_IP=$SERVER_IP"
第 4 步:等待服务就绪
# Wait for instance to be running
echo "Waiting for instance to be running..."
while [ "$(cntb get instance "$INSTANCE_ID" --output json | jq -r '.status')" != "running" ]; do
  sleep 10
done
echo "Instance is running!"

# Wait for SSH to be available (typically 2-5 minutes for Contabo)
echo "Waiting for SSH to be available..."
until ssh -o ConnectTimeout=5 -o StrictHostKeyChecking=no root@$SERVER_IP "echo connected" 2>/dev/null; do
  sleep 10
done
echo "Server is ready!"
第 5 步:验证连接
ssh root@$SERVER_IP "uname -a && free -h && df -h /"
第 6 步:输出供下游技能使用
# Contabo 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 'Contabo instance connected successfully'"

对象存储自动扩缩容

Contabo 支持设置对象存储的自动扩缩容限制,以控制成本。

创建启用自动扩缩容的对象存储
# Create object storage bucket
cntb create objectStorage \
  --region "$CONTABO_REGION" \
  --displayName "my-storage" \
  --totalPurchasedSpaceTB 0.5 \
  --autoScaling.state enabled \
  --autoScaling.sizeLimitTB 2

这样,存储空间就能根据需要自动扩展,最高可达 2TB。


清理

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

# Cancel instance (Contabo uses "cancel" not "delete")
cntb cancel instance "$INSTANCE_ID"

# Note: Cancellation may take effect at end of billing period
# For immediate deletion, contact Contabo support

运维

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


日志集成

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

# After provisioning
log_admin "SUCCESS" "operation" "Provisioned Contabo VPS" "id=$INSTANCE_ID provider=Contabo"

# After destroying
log_admin "SUCCESS" "operation" "Cancelled Contabo VPS" "id=$INSTANCE_ID"

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

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


参考资料

评论

支持 Markdown