Jenkins CLIの動作確認に手こずったので、メモ。

Jenkins CLIとは?

ジョブの実行やジョブの作成を行うためのCLIクライアント。
他のシステムからJenkinsを操作する場合や、大量のジョブを登録する場合などに用います。

詳細については、以下の公式ドキュメントを参照。
英語の方が、情報量が多いです。

ハマったこと

DockerでJenkinsを動かしている場合、Credential関連のコマンドが動かないことがある?
参考: Credentials list in docker doesn’t work

ずっとDockerで動かしていて全く動かず、warファイルを使うとうまく動きました。
ただ、断言するには自信なし…

使ってみた

せっかく使ってみたので、メモ。

get-credentials-as-xml

credentialsをxmlとして取得。取得したxmlは、updateコマンドの時に使う?

java -jar jenkins-cli.jar -s http://localhost:8080/ get-credentials-as-xml "SystemCredentialsProvider::SystemContextResolver::jenkins" "(global)" "a483577e-25fb-4b71-9d69-687f303b5fd9"

以下のようなxmlが得られます。

<com.cloudbees.plugins.credentials.impl.UsernamePasswordCredentialsImpl plugin="credentials@2.1.10">
  <scope>GLOBAL</scope>
  <id>a483577e-25fb-4b71-9d69-687f303b5fd9</id>
  <description></description>
  <username>admin</username>
  <password>
    <secret-redacted/>
  </password>
</com.cloudbees.plugins.credentials.impl.UsernamePasswordCredentialsImpl>

list-credentials

あるストアのcredentialsの一覧を表示。

java -jar jenkins-cli.jar -s http://localhost:8080/ list-credentials "SystemCredentialsProvider::SystemContextResolver::jenkins"
=================================================
Domain                               (global)
Description                          
# of Credentials                     1
=================================================
Id                                   Name
==================================== ============
a483577e-25fb-4b71-9d69-687f303b5fd9 admin/******
=================================================

Jenkins CLIは、webでも情報があまり見つからず、思いがけずハマってしまいました…
おしまい。