LoginSignup
14
14

More than 5 years have passed since last update.

ビルドとかテストしない人向けのJenkins情報

Last updated at Posted at 2014-05-31

フリースタイルビルドでのTips

Build Failerなんだけど?

Shellを実行する場合、終了コードが0以外だと、そのままではBuild Failed で終わってしまう。
たとえば、差分を検出して、結果をコンソールに出力しようとするだけのジョブの場合、

% diff test.txt test_hoge.txt

を実行し、差分があった場合、$? が1になって、Build Failerになってしまいます。
こういうときは、Shellの開始と終了で、set +e, set -e を挟むと良い。

マスタ/スレーブ構成の場合のTips

環境変数が変だなあ?

マスタ/スレーブ方式の場合、スレーブの環境変数がなんか違うって言うときは、ご注意を。
プロファイルは、/etc/bashrc とか、.bashrcを見る....。

なんでマスタでやるはずのジョブをスレーブで実行しているの?

Jenkinsがマスタ/スレーブの場合は、基本的にマスタは仕事せず、できるだけスレーブをこきつかうという、執事頭に昇格します。
特定の環境でしか実行できないジョブ/ビルドは、ちゃんと実行するノードを指定すること。でないと、Windowsサーバでシェルの作業が始まってたりします。

スレーブ同士で成果物をやりとり

スレーブAで作った成果物を、スレーブBに渡して処理させたい場合。直接(SSHとか)のつながりがなくとも、マスタが仲介してAからBに転送することが可能 :)

同一ホストで違う権限(ユーザ)でJenkins動かしたい場合

別アカウントで動くJenkinsスレーブをたくさんつくるのが良さげ。
別アカウントのマスタのJenkinsをたくさん作るんじゃなくて、マスタは1つ、スレーブという形で(同じホスト内であっても)違うユーザで動くスレーブノードを作ると良いかと思われます。

Cronの記録をメールじゃなくってJenkinsにためる

Javaも入ってないしんだけれど、Jenkinsに記録を溜めることって、できるの?

いわゆる、『外部ジョブの監視』。基本はjenkinsのjarを利用するのですが、別にJenkinsのAPIを使ってCronの結果をhttpでPOSTすればいいので、java入ってなくても大丈夫。

メールでCronの結果を受けるのも良いですが、Jenkinsにためてみましょう。

手前味噌で申し訳ないですが、この辺が参考に。

Windows Serverで使う場合

サービス化

サービス化しちゃいましょう。
サービスをドメインユーザで動かすと、ドメインに参加してるサーバに対してファイルシステム上のやりとりができるので、非常に便利。

複数サービス化 (同一ホストで複数スレーブのパターン)

Windowsでサービス化する場合、いったんJNLPでJenkinsのスレーブのサービスを立ち上げて、起動したJavaの画面から『サービス化』すると良い。
ただし、サービス化の場合のサービス名は、固定文字列になっちゃうので、別サービス名で複数のスレーブを登録したい場合は注意。

いったん作成した最初のJenkinsスレーブのサービス名を変更し、config.xml も調整すること。

たくさんあるジョブをまとめて有効化/無効化したい

CLIとかでフィルタしてコマンドから無効化/有効化できるんだろうけど...。
一括有効化/無効化対象のジョブは、特定のスレーブで実行するように設定し、あとはスレーブの停止/起動で対応...。

一部rootの処理をしたいとき

スレーブにしてもマスターにしても、sudoが結構ポイントだったり。
たとえば、バックアップに関わるコマンドとか、rsyncだけはsudoしてjenkinsにやらせたい時とかは、このあたりを調整。

bash
# tty で怒られるのでコメントアウト
#Defaults requiretty
# jenkinsユーザでも実行させたいコマンドは定義
Cmnd_Alias BACKUP_TASK = /usr/bin/rsync, /usr/bin/ssh, /usr/bin/du
# jenkinsさんには上記タスクはroot権限で実施できるようにする
jenkins ALL = (root) NOPASSWD: BACKUP_TASK

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