-Javaで作られたCIツール。昔はHudsonといった。

*インストール [#kfe12879]

warを配置するだけ。単体でも動く

**環境変数やJavaプロパティの確認 [#h805cf78]

http://example.com/jenkins/systemInfo

*起動 [#ve7a9da3]

**単体で起動 [#acb8917b]

 java -jar jenkins.war

-http://localhost:8080/でアクセスする。そうするとホームディレクトリの.jenkinsに展開される。JENKINS_HOMEを指定するとそこを見るようだ。

**サーブレットコンテナ利用 [#wf88ad83]

-warを置くだけ

**Apache連携 [#off06d85]

/etc/httpd/conf.dに以下のファイルをajp.confとして配置

 ProxyRequests     Off
 ProxyPass         /jenkins  ajp://localhost:8009/jenkins
 ProxyPassReverse  /jenkins  http://localhost:8009/jenkins


**マスター、スレーブ構成 [#qe7d464e]

マスターにだけwarインストールして、スレーブはslave.jarを立ち上げておきSSH接続する。

*ディレクトリ構成 [#k9be9722]

**Jobのホームディレクトリ [#ac337d83]

HUDSON_HOME/jobs/各ジョブの名前_DIR

**Jobsのホームディレクトリ以下の構成 [#e06ba81c]

***ファイル [#def64930]

-config.xml

設定内容

**ソース置き場 [#gb463e43]

-CVSやSVNから取ってきたソースの置き場は各JOB共通のようだ。


***ディレクトリ [#b10e4830]

-workspace

ビルドしたものが配置される。

-

*Manage and Assign Roles 設定 [#s3f217fb]

Role Strategy Pluginを利用して、不必要なJOBを隠す。

**Global roles [#mf7ee485]

プロジェクト単位のユーザーには全体のRead以外の権限はつけない。Readの権限を付けないと「アクセスできませんxxxには、全体/Read パーミッションがありません。」となるのでReadの権限は最低必要。ViewのRead権限をつけるとタブが全部見えるが、中身のプロジェクトはProject rolesで定義されたものしか見えないので、ViewのRead権限は不要だろう。

**Project Roles [#v09361c7]

Jobを正規表現で指定して、その単位で権限制御できる。これ単体ではログインしても何も見れないので、全体Viewの権限+プロジェクトの権限を各ユーザーにアサインする。プロジェクトのメンバーには閲覧+ビルドのみ。プロジェクトの管理者にはジョブとビルドのすべての権限を付与しておくとよいだろう。


**Assign role [#jfb8d799]

前述のように全体Readのグローバル権限+プロジェクト単位の権限を二つ付与する必要がある。新規作成ユーザーは何も見れないので権限の作りすぎも要注意である。

*リモートからJOB実行 [#da7f1b9f]

設定画面でトークンを設定して、指定通りのURLをたたくと外部からJOBを実施できる。

*CUIツール [#c399f9b8]

Hudson 1.302から、HudsonにはCLIが追加。hudson-cli.jarというものを実行する

**CUIツールの入手 [#r85098fe]

起動しているhudsonからダウンロードする。

http://hudsonURL/cli

**実行 [#vf322fc6]

***バージョン情報取得 [#o4dd980e]

java -jar hudson-cli.jar -s http://127.0.0.1:8080/ version

***コピー実行 [#eb020b66]

java -jar hudson-cli.jar -s http://127.0.0.1:8080/ copy-job コピー元 コピー先

*プラグイン [#c4f38323]

|ThinBackup|★★|設定バックアップ用。cronの書式で指定できる。世代管理もできるので便利!|
|Role Strategy Plugin|★★★|権限管理ができる|
|Build Pipeline Plugin|★|上流、下流の関係が一目瞭然|
|SSH Plugin|★★★|SSH操作実行|
|Git Plugin|★|Gitと連携する場合に必要|
|Categorized View Plugin|★|JOBビューの階層化|
|Configuration Slicing Plugin|★|設定のコピー。ただ一部のみ対応の感じがあるが・・|
|Copy Artifact Plugin|成果物をコピーするPlugin|
|Copy To Slave Plugin||
|Join Plugin|複数のJOB到着を待って、後続JOBを流せるプラグイン|
|Matrix Authorization Strategy Plugin|マトリックスベースの認証制限を実現する|
|Parameterized Trigger Plugin|★★★|上流ジョブから下流ジョブへパラメータ引き継ぎができる|
|Role Based Plugin|ロールによる認証制御を可能にする|
|Timestamper Plugin|★★|コンソールに時間経過を出力する|
|Extended Choice Parameter Plugin|選択肢リストを各ジョブで共有できる|

Role Based Pluginの説明(有効にするには設定画面変更必要)

http://techracho.bpsinc.jp/morimorihoge/2013_09_12/13642

-以下はおまけ系

|Emotional Jenkins Plugin|ビルド失敗でアイコンが変化|
    

*設定ファイル(config.xml)を直接変更 [#ycd3a86b]

たくさんのjobを扱う場合ブラウザ経由で操作するとめんどくさい。イレギュラーではあるが設定ファイルやディレクトリを直接変更した場合の反映方法をまとめた

**JOBコピー [#n0f07afa]

初期状態ではユーザホームディレクトリに.hudsonというディレクトリができる。ここのjobsディレクトリにjob毎にディレクトリができているのでこいつをコピーする。

**設定変更 [#da7c08bb]

各ジョブのディレクトリに入りconfig.xmlを変更する。

**設定反映 [#z3d4b8c5]

そのままではhudsonのメモリ上にあるものが使われてしまう。故に強制的にファイルシステムから再読み込みさせる。これはメニューに用意されている。

[hudsonの管理]から[設定の再読み込み]を実行する。

**デバッグテクニックなど [#u7862c42]

|環境変数の表示|シェルの実行でenv|

*トラブルシューティング [#pfb294e1]

**ピン止めされたプラグイン [#kec8d927]

このバージョンのJenkinsでは、プラグインマネージャーでピンが設定されている次のプラグインがインストールされています。ピンが設定されているプラグインを、少なくともJenkinsにバンドルされているバージョンにアップデートすることを推奨します。

Jenkins標準のプラグインはJenkins本体をアップデートしたときに合わせてアップデートされるが、バージョンを固定したい時がある。その場合に上記メッセージが出る。

#counter

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS