linode-cli について
公式のLinode CLIで、ターミナルからAkamaiのクラウドリソースを管理するためのスキルです。リソース操作、出力形式、認証、インフラ運用スクリプトを扱います。
主な機能
- 01コンピュートインスタンスの管理
- 02Kubernetesクラスターの操作
- 03DNSとネットワークの設定
- 04ブロックストレージボリュームの管理
- 05テーブルまたはJSON形式で出力
- 06シェル自動化への対応
活用シーン
- 01ターミナルからのクラウドインフラ構築
- 02スクリプトやCI/CDでのLinode運用自動化
- 03リソース確認とCLIアクセスの問題調査
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ rawveg/ skillsforge-marketplace --skill linode-cliインストール後、Claude Code で/linode-cliを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
plugin.jsonreferences/index.mdother.md詳細
Linode CLI スキル
Linode/Akamai のクラウドインフラストラクチャ向け公式コマンドラインインターフェースです。コンピュートインスタンス、Kubernetes クラスター、ボリューム、ネットワーク、DNS などを管理するため、ターミナルから Linode API エンドポイントに簡単にアクセスできます。
このスキルを使用する場面
次の場合にこのスキルを呼び出してください。
- Linode コンピュートインスタンスの管理(Linode の作成、一覧表示、更新、削除)
- **Linode Kubernetes Engine(LKE)**のクラスターとノードプールの操作
- Linode の DNS Manager を使用したDNS ドメインとレコードの設定
- ブロックストレージボリュームとボリュームのアタッチメントの管理
- NodeBalancer とネットワークインフラストラクチャのセットアップ
- スクリプトや 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:OS イメージとカスタムイメージ
出力形式
- デフォルト:主要な情報を整理したテーブル
- --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 を使用して該当するリファレンスファイルをお読みください。
このスキルの使用方法
初心者向け
- インストールから始める:
pip3 install linode-cliを実行し、linode-cli configureで設定します - 基本を学ぶ:
--helpフラグを積極的に使い、利用可能なコマンドを確認します - 一覧表示を試す:
linode-cli linodes listなどの簡単な一覧表示コマンドから始めます - 安全なモードでテストする:テストには、小規模で低コストのインスタンスタイプ(g6-nanode-1)を使用します
- 出力を読む:デフォルトのテーブル出力は、人が読みやすいように設計されています
中級者向け
- 出力形式を使いこなす:スクリプト作成に使用する
--json、--format、--allフラグを習得します - よくあるタスクを自動化する:繰り返し行う操作のために Bash スクリプトを作成します
- jq と組み合わせる:jq を使用して JSON を柔軟にフィルタリング、処理します
- 複数のリソースを管理する:シェルスクリプトでコードとしてインフラストラクチャを作成します
- 環境変数を使用する:対話なしで自動化する場合は、
LINODE_CLI_TOKENを設定します
上級者向け
- CI/CD との統合:デプロイパイプラインに linode-cli を組み込みます
- インフラストラクチャの自動化:インフラストラクチャを完全にプロビジョニングするスクリプトを構築します
- API の調査:CLI を使用して Linode の API 構造を把握します
- カスタムツールの作成:linode-cli を独自の管理ツールでラップします
- 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!"
リソース
公式ドキュメント
- GitHub リポジトリ:https://github.com/linode/linode-cli
- Akamai TechDocs:https://techdocs.akamai.com/cloud-computing/docs/cli
- API ドキュメント:https://www.linode.com/docs/api/
- スタートガイド:https://techdocs.akamai.com/cloud-computing/docs/getting-started-with-the-linode-cli
主な機能
- 自動補完:コマンドの検索に利用できる Bash 補完
- OpenAPI 駆動:最新の API 機能に常に対応
- クロスプラットフォーム:Linux、macOS、Windows(WSL 経由)で動作
- スクリプト対応:自動化や Infrastructure as Code に最適
- 包括的:すべての 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 Unauthorized:API トークンが無効または期限切れです
- 404 Not Found:リソース ID が存在しないか、リージョンが間違っています
- 422 Unprocessable:必須パラメーターが不足しているか、検証エラーです
- 429 Rate Limited:リクエストが多すぎます。バックオフを実装してください
ヘルプの利用
# 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 対応