何かしらで、
「とある環境のjenkinsジョブを別サーバのjenkinsに持って行きたい」
そんな時に役立つTipsです。
API経由でconfig.xmlをエクスポートして、コピー先のジョブにインポートするだけ
とても簡単です。
まずはジョブが定義されているconfig.xmlを取得
1 |
curl -so config.xml --user <ユーザ名:APIトークン> "http://<jenkinsジョブのURL>/config.xml" |
こんな感じで取得できます。
APIトークンの取得方法については
こちらのページを参考に。
次に取ってきたconfig.xmlをコピー先のjenkinsにインポートする
1 |
curl -XPOST --data-binary @config.xml --user <ユーザ名:APIトークン> "http://<コピー先のjenkinsジョブのパス>/config.xml" |
こんな感じでファイルをPOSTするだけです。
下記のようなエラーが出る場合
1 2 |
WARNING hudson.security.csrf.CrumbFilter doFilter No valid crumb was included in request for |
CSRFがうんたらかんたらってでてくることがあります。
そんな時は、
【jenkinsの設定】→【グローバルセキュリティの設定】→【CSRF対策】のチェックを外して再度チャレンジするといけるはずです。
一瞬だけ外してすぐに戻してあげましょう。
そんな感じです。
今日の一言
JenkinsってGITと連携できるのはいいんだけどブランチを自動で引っ張ってくるとかもう少しかゆいところに手を届かせてほしいと思う時がありますね。