0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

JenkinsCLIを使用する方法

0
Posted at

業務で過去に使用していたJenkins環境構築手順を調査する必要がありました。
その流れでJobを作成するマクロがあり、その中でSeleniumを使用してJenkins画面を操作して、Jenkins設定の再読み込みをするようにしていました。
しかし、Jenkinsをアップデートしたことで、UIが変わり操作が正常に行えなくなってしまいました。今後もUIが変わる可能性を考えると、GUI操作は毎回修正が必要になると考えました。
この問題に対して、JenkinsCLIを使用するように変更したため、その手順を簡単にですが整理しました。

全体の流れ

  1. JenkinsCLI画面からjenkins-cli.jarのダウンロード
  2. ユーザセキュリティ画面からAPIトークンの設定
  3. JenkinsCLIでコマンドの認証情報を設定してコマンド実行

環境

本記事では、Dockerコンテナ上のJenkinsを使用しています。

  • Jenkins: Version 2.555.2
  • PC: Windows 11

CLIの準備

JenkinsをCLIで操作するためには、jenkins-cli.jarが必要になります。
Jenkins-cli.jarは、Jenkins CLI画面からダウンロードできます。

  1. Jenkinsの管理画面にアクセス、Jenkins CLIを選択
    image.png

  2. 「jenkins-cli.jar」をクリックしてダウンロード
    image.png

  3. 任意のディレクトリにjenkins-cli.jarを配置
    image.png

CLIの実行(認証失敗)

Jenkins CLI画面の②にある通りに実行してみます。

  1. ターミナルを開きjenkins-cli.jarのあるディレクトリ移動
    (移動しなくてもコマンド実行時にjarファイルのパスを指定してもできます。)
    image.png

  2. コマンド実行

java -jar jenkins-cli.jar -s http://localhost:8080/ help
  1. 結果確認
    エラーが出力されました。認証が必要なようです。
    image.png

認証方法

User API Tokenを使用する方法

  1. ユーザ管理画面の左メニューからSecurity画面を開く
    image.png
  2. トークンの新規追加
    APIトークンセクションの「トークン新規追加」ボタンをクリック
    image.png
  3. トークンの作成
    名前と期限を設定し生成
    image.png
  4. 表示されたトークンをコピー
    画面にある通りに後からは表示されないためコピーし安全な場所で保管してください。
    image.png
  5. Security画面で確認
    作成したトークンが一覧に表示されていることを確認
    image.png

CLIの再実行

APIトークンの追加が完了したので、先ほど失敗したCLIを再実行します。

  1. コマンドの修正
    認証は-authオプションを使用します。認証情報(username:apitoken)を付与します。
java -jar jenkins-cli.jar -s http://localhost:8080/ -auth username:apitoken help

  今回の僕の場合

java -jar jenkins-cli.jar -s http://localhost:8080/ -auth admin:11b6cfa89728253f268ad40319eecef548 help
  1. 実行&結果
    成功してヘルプメッセージが表示されました。
    image.png

失敗する場合

もし失敗してしまう場合は、「Jenkins管理画面」>「System」>「Jenkins URL」の値がコマンドに指定しているURLと合っているか確認してください。
URLが合っている場合は、一度「Save」ボタンをクリックして保存し、再度コマンドを実行してみてください。

実際にJOBの再読み込みをしてみる

今回はbiz-A-jobというJOBの説明をファイルベースで修正して、JenkinsCLIでreload-configurationコマンドを実行して再読み込みしてみたいと思います。

元の値
image.png

コンテナからbiz-A-jobのconfig.xmlをコピー

docker cp [コンテナ名]:[config.xmlのパス] [コピー先パス]

image.png

config.xmlでdescriptionを編集
業務Aジョブ→Jenkinsおじさんに修正します。
image.png

コンテナに配置し直す

docker cp [修正したconfig.xmlパス] [コンテナ名]:[config.xmlのパス]

image.png

まだ変わっていない
image.png

JenkinsCLIでreload-configurationコマンドで再読み込みを実行します

java -jar jenkins-cli.jar -s http://localhost:8080/ -auth username:apitoken reload-configuration

image.png

無事変更が反映されました。
image.png

参考

公式ドキュメント
https://www.jenkins.io/doc/book/managing/cli/

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?