linode について
linode-cli で Linode インフラを作成・検証するスキルです。運用担当者向けに、サーバーとファイアウォールの構築、SSH、クリーンアップ、LKE の自動スケーリングを案内します。
主な機能
- 01デプロイ前の情報収集
- 02CLI、API トークン、SSH の確認
- 03Linode とファイアウォールの作成
- 04SSH 接続の検証
- 05LKE 自動スケーリングの案内
- 06削除とクリーンアップの手順
活用シーン
- 01後続サービス向け Linode の構築
- 02リージョンとサーバープロファイルの選択
- 03LKE クラスターのノード自動スケーリング計画
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ evolv3-ai/ vibe-skills --skill linodeインストール後、Claude Code で/linodeを入力して読み込まれたか確認します。
同梱ファイルassets/env-templatereferences/OPERATIONS.md
詳細
Linode インフラストラクチャ
重大:シークレットと .env
- 実際に使用する
.envファイルや認証情報をスキルフォルダー内に絶対に保存しないでください。 .env.templateファイルは、スキル内のassets/にのみ配置してください。- 実際に使用するシークレットは
~/.admin/.envに保存し、そこから参照してください。
ステータス:本番環境対応 | 依存関係:linode-cli、SSH キーペア
ナビゲーション
- 運用、トラブルシューティング、設定、コストの概要:
references/OPERATIONS.md
ステップ 0:必要な情報を収集する(必須)
停止してください。デプロイコマンドを実行する前に、すべてのパラメーターをユーザーから収集してください。
このチェックリストをコピーし、各項目を確認してください:
Required Parameters:
- [ ] SERVER_NAME - Unique name for this server
- [ ] LINODE_REGION - Region (us-east, us-central, us-west, eu-west, ap-south, etc.)
- [ ] LINODE_TYPE - Linode type (see profiles below)
- [ ] SSH_KEY_LABEL - Label of SSH key in Linode
- [ ] SSH_KEY_PATH - Path to local SSH private key (default: ~/.ssh/id_rsa)
Deployment Purpose (determines recommended profile):
- [ ] Purpose: coolify / kasm / both / custom
coolify → g6-standard-2 ($36/mo)
kasm → g6-standard-4 ($72/mo)
both → g6-standard-8 ($144/mo)
custom → Ask for specific type
用途別の推奨プロファイル:
| 用途 | タイプ | vCPU | RAM | 月額 |
|---|---|---|---|---|
| coolify | g6-standard-2 | 2 | 4GB | $36 |
| kasm | g6-standard-4 | 4 | 8GB | $72 |
| 両方 | g6-standard-8 | 8 | 16GB | $144 |
すべてのパラメーターを確認するまで、前提条件に進まないでください。
前提条件
このスキルを使用する前に、以下を確認してください:
1. Linode CLI がインストールされている
linode-cli --version
インストールされていない場合は、次のコマンドでインストールしてください:
# Python (pip) - Recommended
pip3 install linode-cli
# macOS (Homebrew)
brew install linode-cli
# Linux (pipx)
pipx install linode-cli
2. Linode アカウントと API トークン
Linode アカウントをお持ちでない場合:
次の URL から登録してください:https://www.linode.com/?r=YOUR_REFERRAL_CODE
開示事項:これは紹介リンクです。60 日間有効な 100 ドル分のクレジットを受け取れます。また、スキルの作成者は、あなたが 25 ドルを利用すると 25 ドル分のアカウントクレジットを受け取ります。このリンクを利用すると、これらのスキルの開発を支援できます。
API トークンを取得:https://cloud.linode.com/profile/tokens
Linodes、Firewalls、NodeBalancers などに対する読み取り/書き込みアクセス権を持つ Personal Access Token を作成してください。
3. linode-cli の設定
linode-cli account view
エラーが表示された場合は、次のコマンドで設定してください:
# Interactive setup
linode-cli configure
# Or via environment variable
export LINODE_CLI_TOKEN="your_token_here"
linode-cli account view
4. SSH キーペア
ls ~/.ssh/id_rsa.pub
存在しない場合は、次のコマンドで生成してください:
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa -N ""
5. Linode に SSH キーをアップロード
linode-cli sshkeys list
空の場合は、次のコマンドでアップロードしてください:
linode-cli sshkeys create --label "my-key" --ssh_key "$(cat ~/.ssh/id_rsa.pub)"
6. 認証をテスト
linode-cli regions list
失敗した場合:トークンが無効または期限切れの可能性があります。新しいトークンを作成してください。
サーバープロファイル
Coolify/Kasm のデプロイ
| プロファイル | Linode タイプ | vCPU | RAM | ディスク | 月額料金 |
|---|---|---|---|---|---|
coolify | g6-standard-2 | 2 | 4GB | 80GB | $36 |
kasm | g6-standard-4 | 4 | 8GB | 160GB | $72 |
both | g6-standard-8 | 8 | 16GB | 320GB | $144 |
専用 CPU(最高のパフォーマンス)
| プロファイル | Linode タイプ | vCPU | RAM | ディスク | 月額料金 |
|---|---|---|---|---|---|
dedicated-small | g6-dedicated-2 | 2 | 4GB | 80GB | $36 |
dedicated-medium | g6-dedicated-4 | 4 | 8GB | 160GB | $72 |
dedicated-large | g6-dedicated-8 | 8 | 16GB | 320GB | $144 |
プレミアムプラン(より高いパフォーマンス)
| Linode タイプ | vCPU | RAM | ディスク | 月額料金 |
|---|---|---|---|---|
| g7-premium-2 | 2 | 4GB | 100GB | $43 |
| g7-premium-4 | 4 | 8GB | 200GB | $86 |
| g7-premium-8 | 8 | 16GB | 400GB | $172 |
デプロイ手順
ステップ 1:環境変数を設定
export LINODE_REGION="us-east" # See regions below
export LINODE_TYPE="g6-standard-2" # See profiles above
export LINODE_IMAGE="linode/ubuntu22.04"
export SERVER_NAME="my-server"
export SSH_KEY_LABEL="my-key"
リージョンの選択肢
| コード | 場所 | リージョン |
|---|---|---|
us-east | Newark, NJ | 米国東部 |
us-central | Dallas, TX | 米国中部 |
us-west | Fremont, CA | 米国西部 |
us-southeast | Atlanta, GA | 米国南東部 |
us-ord | Chicago, IL | 米国中部 |
us-lax | Los Angeles, CA | 米国西部 |
us-mia | Miami, FL | 米国南東部 |
us-sea | Seattle, WA | 米国北西部 |
ca-central | Toronto, Canada | カナダ |
eu-west | London, UK | 英国 |
eu-central | Frankfurt, Germany | ドイツ |
ap-south | Singapore | アジア |
ap-northeast | Tokyo, Japan | 日本 |
ap-west | Mumbai, India | インド |
ap-southeast | Sydney, Australia | オーストラリア |
全一覧を確認するには、linode-cli regions list を実行してください。
ステップ 2:SSH キー ID を取得
SSH_KEY_ID=$(linode-cli sshkeys list --label "$SSH_KEY_LABEL" --format id --text --no-headers)
echo "SSH Key ID: $SSH_KEY_ID"
# Verify
if [ -z "$SSH_KEY_ID" ]; then
echo "ERROR: SSH key '$SSH_KEY_LABEL' not found. Upload it first."
exit 1
fi
ステップ 3:ファイアウォールを作成
# Create firewall
FIREWALL_ID=$(linode-cli firewalls create \
--label "my-firewall" \
--rules.inbound_policy DROP \
--rules.outbound_policy ACCEPT \
--format id --text --no-headers)
echo "Firewall ID: $FIREWALL_ID"
# Allow SSH
linode-cli firewalls rules-update "$FIREWALL_ID" \
--inbound '[
{"protocol":"TCP","ports":"22","addresses":{"ipv4":["0.0.0.0/0"],"ipv6":["::/0"]},"action":"ACCEPT"},
{"protocol":"TCP","ports":"80","addresses":{"ipv4":["0.0.0.0/0"],"ipv6":["::/0"]},"action":"ACCEPT"},
{"protocol":"TCP","ports":"443","addresses":{"ipv4":["0.0.0.0/0"],"ipv6":["::/0"]},"action":"ACCEPT"},
{"protocol":"TCP","ports":"8000","addresses":{"ipv4":["0.0.0.0/0"],"ipv6":["::/0"]},"action":"ACCEPT"},
{"protocol":"TCP","ports":"6001-6002","addresses":{"ipv4":["0.0.0.0/0"],"ipv6":["::/0"]},"action":"ACCEPT"},
{"protocol":"TCP","ports":"8443","addresses":{"ipv4":["0.0.0.0/0"],"ipv6":["::/0"]},"action":"ACCEPT"},
{"protocol":"TCP","ports":"3389","addresses":{"ipv4":["0.0.0.0/0"],"ipv6":["::/0"]},"action":"ACCEPT"},
{"protocol":"TCP","ports":"3000-4000","addresses":{"ipv4":["0.0.0.0/0"],"ipv6":["::/0"]},"action":"ACCEPT"}
]' \
--inbound_policy DROP \
--outbound_policy ACCEPT
ステップ 4:Linode を作成
LINODE_ID=$(linode-cli linodes create \
--region "$LINODE_REGION" \
--type "$LINODE_TYPE" \
--image "$LINODE_IMAGE" \
--label "$SERVER_NAME" \
--authorized_keys "$(cat ~/.ssh/id_rsa.pub)" \
--root_pass "$(openssl rand -base64 32)" \
--format id --text --no-headers)
echo "Linode ID: $LINODE_ID"
ステップ 5:Linode にファイアウォールを適用する
linode-cli firewalls device-create "$FIREWALL_ID" \
--type linode \
--id "$LINODE_ID"
ステップ 6:待機して Linode の IP アドレスを取得する
# Wait for Linode to be running
echo "Waiting for Linode to be running..."
while [ "$(linode-cli linodes view "$LINODE_ID" --format status --text --no-headers)" != "running" ]; do
sleep 5
done
# Get IP address
SERVER_IP=$(linode-cli linodes view "$LINODE_ID" --format ipv4 --text --no-headers | head -1)
echo "SERVER_IP=$SERVER_IP"
ステップ 7:サーバーの準備完了を待つ
# 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!"
ステップ 8:接続を確認する
ssh root@$SERVER_IP "uname -a && free -h && df -h /"
ステップ 9:後続のスキルに出力する
# Linode 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 "Linode deployed successfully!"
echo " IP: $SERVER_IP"
echo " Arch: $SERVER_ARCH"
echo " SSH: ssh root@$SERVER_IP"
デプロイを確認する
ssh root@$SERVER_IP "echo 'Linode connected successfully'"
Kubernetes の自動スケーリング
Linode Kubernetes Engine(LKE)は、ノードを自動的にスケーリングする Cluster Autoscaler をサポートしています。
LKE クラスターを作成する
# Create cluster (via API - CLI doesn't support all options)
linode-cli lke cluster-create \
--label "my-lke" \
--region "$LINODE_REGION" \
--k8s_version "1.28"
Cluster Autoscaler を有効にする
Cluster Autoscaler は管理クラスターで実行され、ワークロードに基づいてスケーリングします。
- クラスターに Cluster Autoscaler アドオンをインストールします
- Linode API トークンを使用して設定します
- プールごとのノード数の最小値と最大値を設定します
参照:https://linode.github.io/cluster-api-provider-linode/topics/autoscaling.html
クリーンアップ
警告:この操作は破壊的で、元に戻すことはできません。
# Delete Linode
linode-cli linodes delete "$LINODE_ID"
# Delete firewall
linode-cli firewalls delete "$FIREWALL_ID"
# Optionally delete SSH key
# linode-cli sshkeys delete "$SSH_KEY_ID"
運用
トラブルシューティング、ベストプラクティス、設定変数、コストスナップショットについては、references/OPERATIONS.md を参照してください。
ログ記録の統合
インフラストラクチャの操作を行う際は、中央ログシステムに記録してください。
# After provisioning
log_admin "SUCCESS" "operation" "Provisioned Linode" "id=$LINODE_ID provider=Linode"
# After destroying
log_admin "SUCCESS" "operation" "Deleted Linode" "id=$LINODE_ID"
# On error
log_admin "ERROR" "operation" "Linode deployment failed" "error=$ERROR_MSG"
ログ記録の詳細については、admin スキルの references/logging.md を参照してください。