# Deploy Smart Agent (default batch size)gh workflow run "Deploy Smart Agent" --repo YOUR_USERNAME/github-actions-lab
# Deploy with custom batch sizegh workflow run "Deploy Smart Agent"\
--repo YOUR_USERNAME/github-actions-lab \
-f batch_size=128# Install agentsgh workflow run "Install Node Agent (Batched for Large Scale)"\
--repo YOUR_USERNAME/github-actions-lab
gh workflow run "Install Machine Agent (Batched for Large Scale)"\
--repo YOUR_USERNAME/github-actions-lab
# Uninstall agentsgh workflow run "Uninstall Node Agent (Batched for Large Scale)"\
--repo YOUR_USERNAME/github-actions-lab
# Stop and cleangh workflow run "Stop and Clean Smart Agent (Batched for Large Scale)"\
--repo YOUR_USERNAME/github-actions-lab
# Complete cleanupgh workflow run "Cleanup All Agents"\
--repo YOUR_USERNAME/github-actions-lab
ワークフローの監視
# List recent workflow runsgh run list --repo YOUR_USERNAME/github-actions-lab
# View specific rungh run view RUN_ID --repo YOUR_USERNAME/github-actions-lab
# Watch run in progressgh run watch RUN_ID --repo YOUR_USERNAME/github-actions-lab
# View failed logsgh run view RUN_ID --log-failed --repo YOUR_USERNAME/github-actions-lab
初回デプロイのウォークスルー
完全な初回デプロイの手順を説明します:
ステップ 1: セットアップの確認
ワークフローを実行する前に、以下を確認します:
セルフホストランナーが「Idle」(緑色)と表示されている
SSH_PRIVATE_KEY Secretが設定されている
DEPLOYMENT_HOSTS VariableにターゲットIPが含まれている
ネットワーク接続が確認済み
ステップ 2: Smart Agent のデプロイ
GitHub UI 経由:
Actions タブに移動します
“Deploy Smart Agent” を選択します
“Run workflow” をクリックします
デフォルトのbatch_size(256)を受け入れます
“Run workflow” をクリックします
GitHub CLI 経由:
gh workflow run "Deploy Smart Agent" --repo YOUR_USERNAME/github-actions-lab
ステップ 3: 実行の監視
ワークフローは以下を表示します:
Prepare ジョブ - バッチマトリックスの作成
Deploy ジョブ(バッチごとに1つ)- ホストへのデプロイ
各ジョブをクリックして詳細なログを確認します。
ステップ 4: インストールの確認
ターゲットホストにSSH接続して確認します:
# SSH to targetssh ubuntu@172.31.1.243
# Check Smart Agent statuscd /opt/appdynamics/appdsmartagent
sudo ./smartagentctl status
期待される出力:
Smart Agent is running (PID: 12345)
Service: appdsmartagent.service
Status: active (running)
ステップ 5: 追加エージェントのインストール(オプション)
必要に応じて、特定のエージェントタイプをインストールします:
# Install Machine Agentgh workflow run "Install Machine Agent (Batched for Large Scale)"\
--repo YOUR_USERNAME/github-actions-lab
# Install DB Agentgh workflow run "Install DB Agent (Batched for Large Scale)"\
--repo YOUR_USERNAME/github-actions-lab
# 1. Deploy Smart Agentgh workflow run "Deploy Smart Agent"# 2. Verify deployment# SSH to a host and check status# 3. Install agents as neededgh workflow run "Install Machine Agent (Batched for Large Scale)"gh workflow run "Install DB Agent (Batched for Large Scale)"
シナリオ 2: Smart Agent のアップデート
# 1. Stop and clean current installationgh workflow run "Stop and Clean Smart Agent (Batched for Large Scale)"# 2. Update Smart Agent ZIP in repository# (Push new version to repository)# 3. Deploy new versiongh workflow run "Deploy Smart Agent"# 4. Reinstall agentsgh workflow run "Install Machine Agent (Batched for Large Scale)"
シナリオ 3: 新しいホストの追加
# 1. Update DEPLOYMENT_HOSTS variable in GitHub# Add new IPs# 2. Deploy to all hosts (will skip existing ones with idempotent logic)gh workflow run "Deploy Smart Agent"
シナリオ 4: 完全な削除
# 1. Stop and cleangh workflow run "Stop and Clean Smart Agent (Batched for Large Scale)"# 2. Complete removalgh workflow run "Cleanup All Agents"
細部
「Cleanup All Agents」は /opt/appdynamics を完全に削除します。この操作は元に戻せません。
ワークフロー失敗のトラブルシューティング
ワークフローが「Queued」のまま
症状: ワークフローが開始されない
原因: ランナーが利用できないかオフライン
解決策:
ランナーステータスを確認します: Settings → Actions → Runners
ランナーが「Idle」(緑色)と表示されていることを確認します
必要に応じてランナーを再起動します: sudo ./svc.sh restart
SSH 接続の失敗
症状:「Permission denied」または「Connection refused」エラー
解決策:
SSH を手動でテスト:
# From runner instancessh -i ~/.ssh/test-key.pem ubuntu@172.31.1.243
セキュリティグループを確認:
ランナーからのSSH(22)が許可されていることを確認
ランナーとターゲットが同じセキュリティグループにあることを確認
SSH キーを確認:
SSH_PRIVATE_KEY Secretが実際のキーと一致していることを確認
ターゲットホストに公開鍵があることを確認
部分的なバッチの失敗
症状: 一部のホストが成功し、他が失敗
解決策:
ワークフローログで失敗したホストを特定
失敗したホストにSSH接続して調査
ワークフローを再実行(冪等性 - 成功したホストはスキップ)
バッチジョブエラー
症状:「Error splitting hosts into batches」
解決策:
DEPLOYMENT_HOSTS Variableのフォーマットを確認
1行に1つのIPであることを確認
末尾のスペースや特殊文字がないことを確認
Unix改行コード(LF、CRLFではなく)を使用
パフォーマンスチューニング
バッチサイズの調整
小さなバッチ(リソース使用量が少ない、速度は低下):
gh workflow run "Deploy Smart Agent" -f batch_size=128
大きなバッチ(リソース使用量が多い、速度は向上):
gh workflow run "Deploy Smart Agent" -f batch_size=256