パイプライン作成
10 minutes概要
GitHubリポジトリには、Smart Agentのライフサイクル管理のための4つのメインパイプラインが含まれています:
- Deploy Smart Agent - Smart Agentサービスのインストールと起動
- Install Machine Agent - smartagentctlによるMachine Agentのインストール
- Install Database Agent - smartagentctlによるDatabase Agentのインストール
- Cleanup All Agents - /opt/appdynamicsディレクトリの削除
すべてのパイプラインコードは sm-jenkins GitHub リポジトリ で公開されています。
パイプラインファイル
リポジトリには以下のJenkinsfileパイプライン定義が含まれています:
Jenkins でのパイプライン作成
使用したい各Jenkinsfileに対して、以下の手順でJenkinsにパイプラインを作成します。
方法1: SCM からのパイプライン(推奨)
この方法では、パイプラインコードをバージョン管理に保持し、変更を自動的に同期します。
ステップ1: リポジトリのフォークまたはクローン
まず、リポジトリを自分のGitHubアカウントまたは組織にフォークするか、元のリポジトリを直接使用します。
リポジトリ URL: https://github.com/chambear2809/sm-jenkins
ステップ2: Jenkins でパイプラインを作成
- Jenkins Dashboard に移動します
- New Item をクリックします
- アイテム名を入力します(例:
Deploy-Smart-Agent) - Pipeline を選択します
- OK をクリックします
ステップ3: パイプラインの設定
パイプライン設定ページで以下を設定します:
General セクション:
- Description:
Deploys AppDynamics Smart Agent to multiple hosts - Discard old builds はチェックしないままにします(または必要に応じて設定)
Build Triggers:
- 手動実行のみの場合はチェックしないままにします
- 必要に応じてWebhookやポーリングを設定します
Pipeline セクション:
- Definition:
Pipeline script from SCMを選択します - SCM:
Gitを選択します - Repository URL:
https://github.com/chambear2809/sm-jenkins - Credentials: プライベートリポジトリの場合は追加します
- Branch Specifier:
*/main(または*/master) - Script Path:
pipelines/Jenkinsfile.deploy
ステップ4: 保存
Save をクリックしてパイプラインを作成します。
ステップ5: 他のパイプラインでも繰り返す
作成したい各パイプラインに対して、適切なスクリプトパスを使用してステップ2-4を繰り返します:
| パイプライン名 | スクリプトパス |
|---|---|
| Deploy-Smart-Agent | pipelines/Jenkinsfile.deploy |
| Install-Machine-Agent | pipelines/Jenkinsfile.install-machine-agent |
| Install-Database-Agent | pipelines/Jenkinsfile.install-db-agent |
| Cleanup-All-Agents | pipelines/Jenkinsfile.cleanup |
方法2: パイプラインスクリプトの直接入力
または、Jenkinsfileの内容をJenkinsに直接コピーすることもできます。
- New Item を作成 します(方法1と同様)
- Pipeline セクションで:
- Definition:
Pipeline scriptを選択します - Script: GitHubからJenkinsfileの内容全体をコピー/ペーストします
- Definition:
- Save をクリックします
ヒント
方法1(SCM)を推奨します。パイプラインをバージョン管理に保持でき、更新が容易になります。
パイプラインパラメータ
各パイプラインは設定可能なパラメータを受け付けます。メインデプロイパイプラインの主要なパラメータを以下に示します:
Deploy Smart Agent パイプラインのパラメータ
| パラメータ | デフォルト値 | 説明 |
|---|---|---|
SMARTAGENT_ZIP_PATH | /var/jenkins_home/smartagent/appdsmartagent.zip | Jenkins サーバー上の Smart Agent ZIP のパス |
REMOTE_INSTALL_DIR | /opt/appdynamics/appdsmartagent | ターゲットホストのインストールディレクトリ |
APPD_USER | ubuntu | Smart Agent プロセスを実行するユーザー |
APPD_GROUP | ubuntu | Smart Agent プロセスを実行するグループ |
SSH_PORT | 22 | リモートホストの SSH ポート |
AGENT_NAME | smartagent | Smart Agent 名 |
LOG_LEVEL | DEBUG | ログレベル(DEBUG、INFO、WARN、ERROR) |
Cleanup パイプラインのパラメータ
| パラメータ | デフォルト値 | 説明 |
|---|---|---|
REMOTE_INSTALL_DIR | /opt/appdynamics/appdsmartagent | 削除するディレクトリ |
SSH_PORT | 22 | リモートホストの SSH ポート |
CONFIRM_CLEANUP | false | クリーンアップを実行するにはチェックが必要 |
警告
Cleanupパイプラインには、誤って削除することを防ぐための確認パラメータがあります。クリーンアップを実行するには CONFIRM_CLEANUP にチェックを入れる必要があります。
パイプライン構造の理解
デプロイパイプラインの主要なコンポーネントを見ていきます:
1. エージェント宣言
これにより、パイプラインが linux ラベルを持つJenkinsエージェントで実行されることが保証されます。
2. パラメータブロック
ビルドをトリガーする際に設定できるパラメータを定義します。
3. ステージ
デプロイパイプラインには以下のステージがあります:
- Preparation - 認証情報からターゲットホストを読み込み
- Extract Smart Agent - ZIPファイルをステージングディレクトリに展開
- Configure Smart Agent - config.iniテンプレートを作成
- Deploy to Remote Hosts - 各ホストにファイルをコピーしSmart Agentを起動
- Verify Installation - すべてのホストでSmart Agentの状態を確認
4. 認証情報バインディング
ログに公開することなく、安全に認証情報を読み込みます。
5. Post アクション
パイプライン完了後に、成功・失敗に関わらず実行するアクションを定義します。
パイプラインの命名規則
明確さと整理のために、一貫した命名規則を使用します:
推奨名称:
数字のプレフィックスにより、Jenkinsダッシュボードで論理的な順序を維持できます。
フォルダーによるパイプラインの整理
より良い整理のために、Jenkinsフォルダーを使用できます:
フォルダーを作成:
- New Item をクリックします
- 名前を入力します:
AppDynamics Smart Agent - Folder を選択します
- OK をクリックします
フォルダー内にパイプラインを作成:
- フォルダーに入ります
- 上記の手順でパイプラインを作成します
構成例:
パイプラインコードの表示
完全なパイプラインコードはGitHubリポジトリで確認できます:
メインデプロイパイプライン: https://github.com/chambear2809/sm-jenkins/blob/main/pipelines/Jenkinsfile.deploy
その他のパイプライン:
パイプライン設定のテスト
本番デプロイを実行する前に、パイプライン設定をテストします:
1. 単一ホストでのドライラン
- IPが1つだけのテスト認証情報
deployment-hosts-testを作成します - パイプラインをこの認証情報を使用するよう一時的に変更します
- パイプラインを実行し、単一ホストで動作することを確認します
- 確認後、完全なホストリストに更新します
2. 構文チェック
Jenkinsには組み込みの構文バリデーターがあります:
- パイプラインに移動します
- Pipeline Syntax リンクをクリックします
- Declarative Directive Generator を使用して構文を検証します
次のステップ
パイプラインが作成できたら、最初のSmart Agentデプロイを実行する準備が整いました。