mcpField
L
linode-cli

linode-cli

github.com/rawveg云与 DevOps4040 次安装36 周前更新
代码仓库

关于 linode-cli

用于通过官方 Linode CLI 在终端管理 Akamai 云资源的技能,涵盖资源命令、输出格式、身份验证和基础设施操作脚本。

主要功能

  1. 01管理计算实例
  2. 02操作 Kubernetes 集群
  3. 03配置 DNS 和网络
  4. 04管理块存储卷
  5. 05以表格或 JSON 格式输出
  6. 06支持 Shell 自动化

适用场景

  1. 01从终端配置云基础设施
  2. 02在脚本或 CI/CD 中自动化 Linode 操作
  3. 03检查资源并排查 CLI 访问问题

安装

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

$npx skills add https://github.com/rawveg/skillsforge-marketplace --skill linode-cli

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

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

plugin.json
references/
index.md
other.md

详细介绍

Linode CLI 技能

用于 Linode/Akamai 云基础设施的官方命令行界面。可直接在终端访问 Linode API 端点,轻松管理计算实例、Kubernetes 集群、卷、网络、DNS 等。

何时使用此技能

在以下情况下应使用此技能:

  • 管理 Linode 计算实例(创建、列出、更新、删除 Linode)
  • **使用 Linode Kubernetes Engine(LKE)**集群和节点池
  • 通过 Linode 的 DNS Manager 配置 DNS 域名和记录
  • 管理块存储卷及卷附件
  • 设置 NodeBalancers 和网络基础设施
  • 在脚本或 CI/CD 流水线中自动化 Linode 操作
  • 了解 Linode CLI 命令和 API 交互
  • 调试 Linode CLI 问题或身份验证问题
  • 设置 CLI 输出格式(JSON、表格、自定义字段)

核心概念

CLI 架构
  • 根据 OpenAPI 自动生成:CLI 根据 Linode 的 OpenAPI 规范自动生成,可直接访问所有 API 端点
  • 基于 Python:使用 Python 3.10+ 构建,通过 pip 安装
  • 命令结构:linode-cli <resource> <action> [options]
  • 身份验证:使用存储在配置或环境变量中的 API 令牌
核心资源
  • linodes:计算实例(虚拟机)
  • lke:Linode Kubernetes Engine 集群
  • domains:DNS 域名管理
  • volumes:块存储卷
  • nodebalancers:负载均衡器
  • regions:可用的数据中心位置
  • images:操作系统映像和自定义映像
输出格式
  • 默认:以条理清晰的表格显示关键信息
  • --json:用于脚本处理的原始 JSON 输出
  • --pretty:带缩进的格式化 JSON
  • --format:自定义字段选择
  • --all:显示所有可用字段

快速参考

安装和设置
# Install via pip
pip3 install linode-cli

# First-time configuration (interactive)
linode-cli configure

# Set API token via environment
export LINODE_CLI_TOKEN=your_api_token_here
获取帮助
# View all available commands
linode-cli --help

# View help for specific resource
linode-cli linodes --help

# View help for specific action
linode-cli linodes create --help

# List all available regions
linode-cli regions list

# List all available images
linode-cli images list
列出资源
# List all Linodes on your account
linode-cli linodes list

# List domains
linode-cli domains list

# List volumes
linode-cli volumes list

# List Kubernetes clusters
linode-cli lke clusters-list

# Format output with custom fields
linode-cli linodes list --format "id,label,status,region"

# Output as JSON
linode-cli linodes list --json

# Output all available fields
linode-cli linodes list --all
创建计算实例
# Create a basic Linode (uses defaults from config)
linode-cli linodes create \
  --type g6-standard-2 \
  --region us-east \
  --image linode/debian11 \
  --label my-server \
  --root_pass "SecurePassword123!"

# Create with specific configuration
linode-cli linodes create \
  --type g6-standard-4 \
  --region us-central \
  --image linode/ubuntu22.04 \
  --label production-web \
  --root_pass "MySecurePass!" \
  --group webservers

# Create with authorized SSH keys
linode-cli linodes create \
  --type g6-standard-2 \
  --region us-west \
  --image linode/debian11 \
  --label secure-server \
  --root_pass "Password123!" \
  --authorized_keys "ssh-rsa AAAAB3Nz..."
管理 Kubernetes(LKE)
# Create a Kubernetes cluster with multiple node pools
linode-cli lke cluster-create \
  --label my-k8s-cluster \
  --region us-central \
  --k8s_version 1.28 \
  --node_pools.type g6-standard-4 --node_pools.count 3 \
  --node_pools.type g6-standard-8 --node_pools.count 2 \
  --tags production

# List all clusters
linode-cli lke clusters-list

# Update cluster configuration
linode-cli lke cluster-update $CLUSTER_ID \
  --label renamed-cluster \
  --tags production \
  --tags monitoring \
  --tags backup

# Update node pool size
linode-cli lke pool-update $CLUSTER_ID $POOL_ID \
  --count 5

# Delete a cluster
linode-cli lke cluster-delete $CLUSTER_ID
DNS 管理
# Create a domain
linode-cli domains create \
  --type master \
  --domain example.com \
  --soa_email [email protected]

# List domains
linode-cli domains list

# Create DNS record
linode-cli domains records-create $DOMAIN_ID \
  --type A \
  --name www \
  --target 192.0.2.1

# Delete a domain
linode-cli domains delete $DOMAIN_ID
卷管理
# Create a Block Storage volume
linode-cli volumes create \
  --label my-volume \
  --size 100 \
  --region us-east

# List volumes
linode-cli volumes list

# Attach volume to Linode
linode-cli volumes attach $VOLUME_ID \
  --linode_id $LINODE_ID

# Detach volume
linode-cli volumes detach $VOLUME_ID
高级用法
# Filtering output with jq (requires jq installed)
linode-cli linodes list --json | jq '.[] | select(.status=="running")'

# Using variables in scripts
LINODE_ID=$(linode-cli linodes list --json | jq -r '.[0].id')
echo "First Linode ID: $LINODE_ID"

# Bulk operations example
for region in us-east us-west eu-central; do
  linode-cli linodes create \
    --type g6-nanode-1 \
    --region $region \
    --image linode/alpine3.18 \
    --label "test-$region" \
    --root_pass "TempPassword123!"
done

参考文件

此技能在 references/ 中包含完整文档:

  • other.md - 指向 GitHub 上 Linode CLI 官方 Wiki 的链接,其中包含其他文档、指南和社区资源

需要详细信息时,使用 view 阅读特定参考文件。

使用此技能

初学者
  1. 从安装开始:运行 pip3 install linode-cli,并使用 linode-cli configure 进行配置
  2. 了解基础知识:多使用 --help 标志来查找可用命令
  3. 练习列出资源:从简单的列表命令开始,例如 linode-cli linodes list
  4. 在安全模式下测试:使用小型、低成本的实例类型(g6-nanode-1)进行测试
  5. 阅读输出:默认表格输出旨在便于阅读
中级用户
  1. 掌握输出格式:学习用于脚本处理的 --json、--format 和 --all 标志
  2. 自动化常见任务:为重复操作创建 bash 脚本
  3. 与 jq 结合使用:使用 jq 强大的 JSON 筛选和处理功能
  4. 管理多个资源:使用 shell 脚本以代码形式创建基础设施
  5. 使用环境变量:设置 LINODE_CLI_TOKEN,以便进行非交互式自动化
高级用户
  1. 集成 CI/CD:将 linode-cli 纳入部署流水线
  2. 基础设施自动化:构建完整的基础设施配置脚本
  3. 探索 API:使用 CLI 了解 Linode 的 API 结构
  4. 自定义工具:将 linode-cli 封装到自己的管理工具中
  5. 访问 OpenAPI:为新功能贡献 OpenAPI 规范
导航提示
  • 发现资源:使用 linode-cli --help 查看所有可用的资源类型
  • 发现操作:每种资源都有不同的操作(list、create、update、delete 等)
  • 参数帮助:对任何操作使用 --help,查看必需和可选参数
  • 检查 JSON:使用 --json 查看任何资源的所有可用字段
  • 规划区域:创建资源前,运行 linode-cli regions list

常见模式

身份验证设置
# Method 1: Interactive configuration
linode-cli configure

# Method 2: Environment variable
export LINODE_CLI_TOKEN=your_token_here

# Method 3: Config file (~/.config/linode-cli)
[DEFAULT]
token = your_token_here
region = us-east
type = g6-standard-2
image = linode/ubuntu22.04
实例生命周期
# Create → Boot (automatic) → Use → Power off → Delete
linode-cli linodes create --label test --type g6-nanode-1 --region us-east --image linode/alpine3.18 --root_pass "Test123!"
# Get ID from output or list
LINODE_ID=$(linode-cli linodes list --json | jq -r '.[] | select(.label=="test") | .id')
# Shutdown
linode-cli linodes shutdown $LINODE_ID
# Delete
linode-cli linodes delete $LINODE_ID
脚本模式
#!/bin/bash
set -e  # Exit on error

# Configuration
REGION="us-central"
TYPE="g6-standard-2"
IMAGE="linode/debian11"

# Create instance
echo "Creating Linode..."
RESULT=$(linode-cli linodes create \
  --type "$TYPE" \
  --region "$REGION" \
  --image "$IMAGE" \
  --label "auto-server-$(date +%s)" \
  --root_pass "$(openssl rand -base64 32)" \
  --json)

# Extract ID
LINODE_ID=$(echo "$RESULT" | jq -r '.[0].id')
echo "Created Linode ID: $LINODE_ID"

# Wait for running status
while true; do
  STATUS=$(linode-cli linodes view $LINODE_ID --json | jq -r '.[0].status')
  echo "Status: $STATUS"
  [[ "$STATUS" == "running" ]] && break
  sleep 5
done

echo "Linode is ready!"

资源

官方文档
主要功能
  • 自动补全:提供 Bash 补全,便于发现命令
  • 由 OpenAPI 驱动:始终与最新 API 功能保持同步
  • 跨平台:适用于 Linux、macOS 和 Windows(通过 WSL)
  • 可编写脚本:非常适合自动化和基础设施即代码
  • 全面:可访问所有 Linode API 端点
社区
  • 贡献者:49 位活跃贡献者
  • 许可证:BSD-3-Clause
  • 语言:Python(98.8%)
  • 安装:PyPI 软件包(可通过 pip 安装)

提示和最佳实践

安全
  • 保护令牌:切勿将 API 令牌提交到版本控制系统
  • 使用环境变量:将令牌存储在 .env 文件中(已被 git 忽略)
  • 定期轮换:定期生成新令牌
  • 限制权限:使用权限范围受限且仅包含必需权限的令牌
  • 设置强密码:始终为实例设置强 root 密码
成本管理
  • 从小规模开始:使用 nanode 实例(g6-nanode-1)进行测试
  • 删除未使用的资源:移除测试实例,避免不必要的费用
  • 监控使用情况:定期检查账户中的活动资源
  • 使用标签:使用标签整理资源,便于管理
调试
  • 详细输出:添加 --debug 标志,获取详细的错误信息
  • 检查 JSON:使用 --json --pretty 查看完整的 API 响应
  • 检查状态:使用 view 命令检查资源详情
  • API 参考:查阅 API 文档,了解端点详情

故障排除

身份验证问题
# Verify token is set
echo $LINODE_CLI_TOKEN

# Test authentication
linode-cli account view

# Reconfigure CLI
linode-cli configure
常见错误
  • 401 未授权:API 令牌无效或已过期
  • 404 未找到:资源 ID 不存在或区域不正确
  • 422 无法处理:缺少必需参数或发生验证错误
  • 429 请求过多:请求过多,请实施退避策略
获取帮助
# Check CLI version
linode-cli --version

# View debug information
linode-cli linodes list --debug

# Check configuration
cat ~/.config/linode-cli

备注

  • 此技能根据 Linode CLI 官方文档生成
  • CLI 根据 Linode 的 OpenAPI 规范自动生成
  • 所有命令和示例均基于官方 Linode API v4
  • 命令语法和可用选项可能随 API 更新而变化
  • 请始终参考 --help,获取最新的命令文档

更新

要保持 Linode CLI 为最新版本:

# Update via pip
pip3 install --upgrade linode-cli

# Check for new features
linode-cli --help

# Review changelog
pip3 show linode-cli

CLI 会定期更新,以反映 Linode API 的变化。请查看 GitHub 仓库中的发行说明和重大变更。

评论

支持 Markdown