LoginSignup
32
32

More than 5 years have passed since last update.

Jenkinsのジョブ設定をExport/Importする

Posted at

JenkinsのAPIを使ってジョブ設定をインポートすることができたのでそのメモです。
異なる環境に設定を移行したい場合などに使えそうです。
※ Jenkins 2.52 で動作しました。

移行元のジョブの設定をXMLで取得する

  • (移行元ジョブのURL)/config.xml にGETリクエストすると取得できます。

移行先Jenkinsの"crumb"を取得する

  • JenkinsにPOSTリクエストをするための情報(=crumb)を取得します。
    • CSRF対策としてcrumbを付加する必要があるようになっているようです。
    • これがないと No valid crumb was included in the request というエラーが返ります。
  • (ユーザー名):(パスワード)@(JenkinsHost)/crumbIssuer/api/xml にGETリクエストすると以下のようなレスポンスが得られます。
<defaultCrumbIssuer_class="hudson.security.csrf.DefaultCrumbIssuer">
  <crumb>1111222233334444</crumb>
  <crumbRequestField>Jenkins-Crumb</crumbRequestField>
</defaultCrumbIssuer>

移行先Jenkinsに空のジョブを作成する

  • インポートさせるジョブを作ります。

移行先ジョブに設定をインポートする

  • (移行先ジョブのURL)/config.xml にPOSTリクエストします。
  • リクエストヘッダに先ほど取得したcrumbをセットします。
    • 先ほどの例だと Jenkins-Crumb: 1111222233334444 となります。
  • リクエストボディは移行元のジョブから取得したXMLです。
  • POSTリクエストが成功すると、XMLの内容がジョブの設定に反映されます。

参考にしたページなど

32
32
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
32
32