Jenkinsのリモートビルド

Jenkinsビルドで、既存のgitプラグインでは期待するようなHookを設定できずに途方に暮れていたところ、設定のビルドトリガの所に”リモートからビルド(例:スクリプトから)”というものがあるではないか!
remo01
認証トークンには、適当な文字列を設定してやれば良いのかな・・・

試にlinuxサーバーのプロンプトから叩いてみる

$ wget 'https://JENKINS_URL/job/ジョブ名/buildWithParameters?token=トークン'
--2015-xx-xx 11:01:37--  https://JENKINS_URL/job/ジョブ名/buildWithParameters?token=トークン
ERROR: cannot verify xxxxxxxxx certificate, issued by `/C=xx/ST=xxxxx/L=xxxx/O=dept/OU=xxxxx /CN=xxxxxxx':
  Self-signed certificate encountered.
    ERROR: certificate common name `xxxxxxx' doesn't match requested host name `xxxxxxxxxxxxxxxxxx'.
To connect to xxxxxxxxxxxxx insecurely, use `--no-check-certificate'.

中途半端なオレオレ証明書のチェックで失敗してしまいました。
提案通りに「–no-check-certificate」オプションを付加してみる。

$ wget --no-check-certificate 'https://JENKINS_URL/job/ジョブ名/buildWithParameters?token=トークン'
--2015-xx-xx 11:15:09--  https://JENKINS_URL/job/ジョブ名/buildWithParameters?token=トークン
WARNING: cannot verify xxxxxxxxxx certificate, issued by `/C=xx/ST=xxxxx/L=xxxxx/O=xxxx/OU=xxxxxxxx/CN=xxxxxxx':
  Self-signed certificate encountered.
    WARNING: certificate common name `xxxxxxxxx' doesn't match requested host name `xxxxxxxxxxxxxxxxxx'.
Proxy request sent, awaiting response... 403 Forbidden
2015-xx-xx 11:15:09 ERROR 403: Forbidden.

証明書チェックはスルー出来たのだが、認証で失敗

googleで調査。
認証必須環境におけるJenkinsのスクリプトトリガーによるビルドの実行 | そんなこと覚えてないによると、認証付きjenkinsの場合、User IDとAPI トークンが必要らしい

Jenkinsのログインアカウント名で表示されるプルダウンメニューから”設定”をクリックする。
remo02
APIトークンの所に所望の物が表示されている。
remo03
では、もう一度チャレンジ

$ wget --no-check-certificate --auth-no-challenge --http-user=kitada --http-password=xxxxxxxxxxxxxxxx 'https://JENKINS_URL/job/ジョブ名/buildWithParameters?token=トークン'
--2015-xx-xx 11:48:26--  https://JENKINS_URL/job/ジョブ名/buildWithParameters?token=トークン
WARNING: cannot verify xxxxxxxxxx certificate, issued by `/C=xx/ST=xxxxx/L=xxxxx/O=xxxx/OU=xxxxxxxx/CN=xxxxxxx':
  Self-signed certificate encountered.
    WARNING: certificate common name `xxxxxxxxx' doesn't match requested host name `xxxxxxxxxxxxxxxxxx'.
Proxy request sent, awaiting response... 201 Created
Length: 0
Saving to: `buildWithParameters?token=トークン'

    [ <=>                                                                                                            ] 0           --.-K/s   in 0s      

2015-xx-xx 11:48:26 (0.00 B/s) - `buildWithParameters?token=トークン' saved [0/0]

よし、うまく行ったみたい。
ただし、毎回`buildWithParameters?token=トークン’みたいなゴミファイルができあがってしまうので、下記のように変更する。

$ wget -q -O - --no-check-certificate --auth-no-challenge --http-user=kitada --http-password=xxxxxxxxxxxxxxxx 'https://JENKINS_URL/job/ジョブ名/buildWithParameters?token=トークン' > /dev/null

これをBashスクリプトで実行すれば、なんとかなりそうだ。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>