ジョブ管理と制御のためのJenkins CLIの必須コマンド
Jenkinsは、主要なオープンソース自動化サーバーとして、CI/CDパイプラインを管理するための強力なメカニズムを提供します。Web UIは視覚的な監視に優れていますが、何百ものジョブや繰り返しのセットアップタスクを扱う場合、管理効率にはしばしば自動化が求められます。ここで、Jenkinsコマンドラインインターフェース(CLI)が不可欠になります。
Jenkins CLIを使用すると、管理者や開発者はターミナルを介してJenkinsインスタンスとリモートで対話し、強力なスクリプト機能を活用できます。この記事は、Jenkinsジョブの作成と設定から、有効化、無効化、削除に至るまで、そのライフサイクル全体を管理するために必要な主要なCLIコマンドの実践的なガイドとして役立ちます。これらのコマンドを習得することは、効果的なJenkins管理とDevOpsツールチェーンへの統合にとって極めて重要です。
Jenkins CLIのセットアップ
コマンドを実行する前に、Jenkinsマスターへのセキュアな接続を確立する必要があります。これには、CLIクライアントのダウンロードと適切な認証の確認が含まれます。
1. jenkins-cli.jarのダウンロード
CLIクライアントは通常、特定のエンドポイントにあるJenkinsサーバー上に直接見つけることができます。wgetまたはcurlを使用してダウンロードできます。
wget http://your-jenkins-url:8080/jnlpJars/jenkins-cli.jar
# またはcurlを使用
curl -O http://your-jenkins-url:8080/jnlpJars/jenkins-cli.jar
2. 認証方法
Jenkins CLI接続には認証が必要です。最も安全で推奨される方法は、平文のユーザーパスワードではなく、APIトークンを使用することです。
APIトークンを生成するには、Jenkins Web UIで[ユーザー設定 > 設定 > APIトークン]に移動します。
以降のすべてのコマンドでは、通常、-s(サーバーURL)と-auth(認証情報)フラグを使用した認証が必要です。
java -jar jenkins-cli.jar -s http://your-jenkins-url:8080 -auth USERNAME:API_TOKEN <command>
ヒント: セキュリティのため、APIトークンをスクリプトに直接入力するのではなく、安全な環境変数に保存するか、設定されている場合はSSHキー認証方法を使用してください。
ジョブ発見のための主要コマンド
ジョブを修正する前に、既存のジョブを一覧表示し、その設定を取得することがしばしば必要になります。
全ジョブのリスト表示: list-jobs
このコマンドは、Jenkinsマスター上に設定されているすべてのジョブの名前を表示します。
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH list-jobs
ジョブ設定の取得: get-job
JenkinsジョブはXML設定ファイルで定義されます。get-jobコマンドを使用すると、このXML定義を取得でき、これはテンプレートに基づいて新しいジョブを作成するために不可欠です。
# 'my-template-job'の設定を取得し、ファイルに保存する
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH get-job my-template-job > template-config.xml
必須のジョブ管理コマンド
これらのコマンドは、Jenkinsジョブの基本的なライフサイクル操作を処理します。
1. 新しいジョブの作成: create-job
create-jobコマンドには、新しいジョブの名前と、そのパラメーター、ビルドステップ、トリガーを定義するXML設定ファイルが必要です。
前提条件: まず、有効なXML設定ファイル(例: new-config.xml)が必要です。これは通常、get-jobで取得したテンプレートを修正して作成します。
# 例: ローカルのXMLファイルを使用して 'project-feature-branch' という新しいジョブを作成する
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH create-job project-feature-branch < new-config.xml
2. 既存ジョブのコピー: copy-job
これは、既存のジョブをテンプレートとして新しい名前を適用することで、新しいジョブを作成する最も速い方法です。このコマンドは、ソースジョブの設定を効果的に複製します。
# 構文: copy-job SOURCE_JOB_NAME DESTINATION_JOB_NAME
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH copy-job original-pipeline new-dev-pipeline
3. ジョブの有効化と無効化: enable-job と disable-job
これらのコマンドは、メンテナンス、一時的な停止、または管理上の制御において極めて重要であり、ビルドのトリガーを防止または許可します。
# メンテナンスのために、スケジュールされたビルドやトリガーされたビルドの実行を停止するコマンド
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH disable-job legacy-project-build
# ジョブを再度アクティブ化するコマンド
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH enable-job legacy-project-build
4. ジョブの削除: delete-job
このコマンドは、ビルド履歴と設定を含め、Jenkinsインスタンスからジョブを完全に削除します。このコマンドは慎重に使用してください。
# ジョブの恒久的な削除
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH delete-job obsolete-test-job
警告:
delete-jobコマンドは、CLI環境でさらなる確認なしに直ちに実行されます。このコマンドを実行する前に、スクリプトに適切な検証ステップが含まれていることを確認してください。
ビルドのトリガーと監視
設定管理に加えて、CLIは特に特定のパラメーターを必要とするビルドをトリガーするためによく使用されます。
ビルドのトリガー: build
buildコマンドは、指定されたジョブの新しいビルドを開始します。ジョブがパラメーター化されている場合、-pフラグを使用して引数を直接渡すことができます。
# シンプルな、パラメーター化されていないビルドをトリガーする
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH build nightly-deploy
# パラメーターを渡してパラメーター化されたジョブをトリガーする
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH build integration-test -p TARGET_ENV=staging -p BRANCH_NAME=hotfix-123
注:
buildコマンドで-sフラグを使用すると、CLIはビルドが完了するまで待機し、終了ステータスを報告します。それ以外の場合、コマンドはビルドをキューに追加した直後に戻ります。
ビルドステータスの表示: get-job と console
CLIはWeb UIに匹敵するリアルタイムストリーミングを提供しませんが、ジョブのステータスを確認し、コンソール出力を取得できます。
特定のビルド番号のコンソール出力を表示するには:
# 'my-job'のビルド番号55のコンソール出力を取得する
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH console my-job 55
CLIスクリプトのベストプラクティス
Jenkins CLIを効率的に活用するには、安定性とセキュリティのために特定のベストプラクティスを採用する必要があります。
1. スクリプト作成と自動化
CLIの真の力はシェルスクリプトにあります。get-jobのようなコマンドを使用し、sedやawkのようなツールを使って結果のXMLを修正し、その修正された設定をcreate-jobまたはreload-jobを使用してフィードバックします。
ワークフローの例 (コピー、修正、作成):
- テンプレートを取得:
get-job template-job > tmp.xml tmp.xml内でプレースホルダー(例: プロジェクト名、リポジトリURL)をsedで置き換えます。- 新しいジョブを作成:
create-job new-job < tmp.xml
2. 設定更新の処理
XMLファイルを使用して既存のジョブの設定を更新するには、reload-jobコマンドを使用します。これはビルド履歴を保持するため、ジョブを削除して再作成するよりも安全です。
# ローカルで修正された設定ファイルを使用して 'project-a' を更新する
java -jar jenkins-cli.jar -s $JENKINS_URL -auth $AUTH reload-job project-a < updated-config.xml
3. エラー処理
スクリプトでCLIコマンドを実行した後には、必ず終了コード($?)を確認してください。戻りコード0は成功を示し、0以外のコードはエラーを示します。これは堅牢な自動化とデバッグにとって不可欠です。
まとめ
Jenkins CLIは、ジョブを管理するための堅牢でスクリプト可能なインターフェースを提供し、管理者が反復的なタスクを自動化し、設定移行を管理し、Jenkins管理をより大規模なCI/CDデプロイメントスクリプトに統合することを可能にします。copy-job、create-job、delete-job、buildなどのコマンドを活用することで、大幅な効率化を実現し、Jenkins環境全体で一貫性を維持できます。