DevelopTool/CI/Jenkins
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
-Javaで作られたCIツール。昔はHudsonといった。
#contents
*バックアップとリストア [#ia4fe074]
**thinbackupを利用したもの [#s69235c6]
-thinbackupを手動インストール
-フォルダを指定してリストア
-pluginは手動で入れる必要があった。
-credentialも作り直す
*インストール [#q6ef6034]
**rpmインストール [#n4ab8dc4]
yumもあるけど、実際には一つのrpmっぽいので下記より取得。
http://pkg.jenkins-ci.org/redhat/
***コンテキストパスの変更 [#b0c711e7]
-起動引数に以下の設定をいれると変えられるとの情報だが、成...
--prefix=/jenkins
/etc/sysconfig/jenkinsに入れたら成功!
JENKINS_ARGS="--prefix=/jenkins"
***設定値 [#w55c91f6]
/etc/sysconfig/jenkinsに記載がある
|JENKINS_HOME|/var/lib/jenkins|
|JENKINS_PORT|8080|
**warインストール [#kfe12879]
Tomcatなどにwarを配置するだけ。単体でも動く
***環境変数やJavaプロパティの確認 [#h805cf78]
http://example.com/jenkins/systemInfo
***CSSやJSなどの場所 [#na4d78a6]
webapps以下のxxxフォルダがhttp://JENKINS_SERVER/jenkins/s...
*起動 [#ve7a9da3]
**単体で起動 [#acb8917b]
java -jar jenkins.war
-http://localhost:8080/でアクセスする。そうするとホームデ...
**サーブレットコンテナ利用 [#wf88ad83]
-warを置くだけ
**Apache連携 [#off06d85]
/etc/httpd/conf.dに以下のファイルをproxy.confとして配置
ProxyPass / http://localhost:8080/ nocanon
ProxyPassReverse / http://localhost:8080/
ProxyRequests Off
AllowEncodedSlashes NoDecode
**コンテキストパス変更 [#ha084c52]
jenkins2.0だとwarではないので、--prefix=/jenkins
**Plugin install [#n2c4a499]
-jpiファイルをJENKINS_HOME/pluginsディレクトリに配置して...
**マスター、スレーブ構成 [#qe7d464e]
マスターにだけwarインストールして、スレーブはslave.jarを...
*ディレクトリ構成 [#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以外の権限はつけ...
**Project Roles [#v09361c7]
Jobを正規表現で指定して、その単位で権限制御できる。これ単...
**Assign role [#jfb8d799]
前述のように全体Readのグローバル権限+プロジェクト単位の...
*リモートからJOB実行 [#da7f1b9f]
設定画面でトークンを設定して、指定通りのURLをたたくと...
*CUIツール [#c399f9b8]
jarファイルのCLIが追加。jenkins.jarというものを実行する
**CUIツールの入手 [#r85098fe]
起動しているhudsonからダウンロードする。
http://jenkinsURL/cli
**実行 [#vf322fc6]
***バージョン情報取得 [#o4dd980e]
java -jar jenkns.jar -s http://127.0.0.1:8080/ version
***コピー実行 [#eb020b66]
java -jar jenkins.jar -s http://127.0.0.1:8080/ copy-job ...
***認証 [#keb73742]
java -jar jenkins-cli.jar [-s JENKINS_URL] -auth kohsuke:...
*逆引き [#c1b071c8]
**複数選択のパラメータを渡したい [#la71a7c6]
パラメータでテキストを用意しておくと、複数のパラメータが...
-出力例
JOB1 JOB2 JOB3 JOB4
**各ジョブで使うパラメータを外部ファイルで共通化したい [#...
Extended Choice Parameter pluginかExtensible Choice Param...
***Extended Choice Parameter plugin [#t93fb1c5]
設定でファイルからの読み込みやデリミタ―を指定してのパラメ...
-properitesファイルの例
param1=hoge,fuga,piyo
param2=db1,db2,db3
***下流ジョブの実行完了を待って、後続ジョブを実施したい→J...
ただしJOINPluginが実行完了を待つのはビルド後のJOBに限る。
*プラグイン [#c4f38323]
|ThinBackup|★★|設定バックアップ用。cronの書式で指定できる...
|Workspace Cleanup|★|ワークスペース削除用プラグイン。git...
|Role Strategy Plugin|★★★|権限管理ができる|
|Build Pipeline Plugin|★|上流、下流の関係が一目瞭然。ただ...
|Build Flow Plugin|★|DSLで制御できるらしいぞ!|
|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|ビルド失敗でアイコンが変化|
**build flow plugin 研究 [#z5004ca1]
-並行制御は下流ジョブの終了までは考慮しない。各並行の中に...
-if文などが使える
// パラメータの表示
out.println params
// if
if (params["TARGET_BRANCH"] == "master") {
out.println "TARGET_BARNCH is master"
} else {
out.println "TARGET_BARNCH is not master"
}
join = parallel ([
first: { build("job1", param1: "passed by build ...
second: { build("job2") },
third: { build("job3") }
])
out.println join.first.result.name
// job4 will be triggered after jobs 1, 2 and 3 complete
build("job4")
*設定ファイル(config.xml)を直接変更 [#ycd3a86b]
たくさんのjobを扱う場合ブラウザ経由で操作するとめんどくさ...
**JOBコピー [#n0f07afa]
初期状態ではユーザホームディレクトリに.hudsonというディレ...
**JOBバックアップ [#j2798f60]
バックアップするプラグインもあるが、他サーバーにJOBを移行...
cd $JENKINS_HOME
find jobs/ -name "config.xml" -print0 | tar -cvz -T - --...
findとtarの間にxargsを使ってしまうと、アーカイブするファ...
**設定変更 [#da7c08bb]
各ジョブのディレクトリに入りconfig.xmlを変更する。
**設定反映 [#z3d4b8c5]
そのままではhudsonのメモリ上にあるものが使われてしまう。...
[hudsonの管理]から[設定の再読み込み]を実行する。
**デバッグテクニックなど [#u7862c42]
|環境変数の表示|シェルの実行でenv|
**主な環境変数 [#df22c1d2]
|WORKSPACE|JOBのワークスペース|
|JENKINS_HOME|JENKINS全体のHOME|
*トラブルシューティング [#pfb294e1]
**ピン止めされたプラグイン [#kec8d927]
このバージョンのJenkinsでは、プラグインマネージャーでピン...
Jenkins標準のプラグインはJenkins本体をアップデートしたと...
**[No valid crumb was included in the request] [#z71ebe16]
この場合、トークンチェックに引っかかっているようだ。
正常な遷移にもかかわらず出てしまう場合がある。
その場合「Jenkinsの管理」→「グローバルセキュリティの設定...
CSRF対策をOFFにすることで回避できる。
#counter
終了行:
-Javaで作られたCIツール。昔はHudsonといった。
#contents
*バックアップとリストア [#ia4fe074]
**thinbackupを利用したもの [#s69235c6]
-thinbackupを手動インストール
-フォルダを指定してリストア
-pluginは手動で入れる必要があった。
-credentialも作り直す
*インストール [#q6ef6034]
**rpmインストール [#n4ab8dc4]
yumもあるけど、実際には一つのrpmっぽいので下記より取得。
http://pkg.jenkins-ci.org/redhat/
***コンテキストパスの変更 [#b0c711e7]
-起動引数に以下の設定をいれると変えられるとの情報だが、成...
--prefix=/jenkins
/etc/sysconfig/jenkinsに入れたら成功!
JENKINS_ARGS="--prefix=/jenkins"
***設定値 [#w55c91f6]
/etc/sysconfig/jenkinsに記載がある
|JENKINS_HOME|/var/lib/jenkins|
|JENKINS_PORT|8080|
**warインストール [#kfe12879]
Tomcatなどにwarを配置するだけ。単体でも動く
***環境変数やJavaプロパティの確認 [#h805cf78]
http://example.com/jenkins/systemInfo
***CSSやJSなどの場所 [#na4d78a6]
webapps以下のxxxフォルダがhttp://JENKINS_SERVER/jenkins/s...
*起動 [#ve7a9da3]
**単体で起動 [#acb8917b]
java -jar jenkins.war
-http://localhost:8080/でアクセスする。そうするとホームデ...
**サーブレットコンテナ利用 [#wf88ad83]
-warを置くだけ
**Apache連携 [#off06d85]
/etc/httpd/conf.dに以下のファイルをproxy.confとして配置
ProxyPass / http://localhost:8080/ nocanon
ProxyPassReverse / http://localhost:8080/
ProxyRequests Off
AllowEncodedSlashes NoDecode
**コンテキストパス変更 [#ha084c52]
jenkins2.0だとwarではないので、--prefix=/jenkins
**Plugin install [#n2c4a499]
-jpiファイルをJENKINS_HOME/pluginsディレクトリに配置して...
**マスター、スレーブ構成 [#qe7d464e]
マスターにだけwarインストールして、スレーブはslave.jarを...
*ディレクトリ構成 [#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以外の権限はつけ...
**Project Roles [#v09361c7]
Jobを正規表現で指定して、その単位で権限制御できる。これ単...
**Assign role [#jfb8d799]
前述のように全体Readのグローバル権限+プロジェクト単位の...
*リモートからJOB実行 [#da7f1b9f]
設定画面でトークンを設定して、指定通りのURLをたたくと...
*CUIツール [#c399f9b8]
jarファイルのCLIが追加。jenkins.jarというものを実行する
**CUIツールの入手 [#r85098fe]
起動しているhudsonからダウンロードする。
http://jenkinsURL/cli
**実行 [#vf322fc6]
***バージョン情報取得 [#o4dd980e]
java -jar jenkns.jar -s http://127.0.0.1:8080/ version
***コピー実行 [#eb020b66]
java -jar jenkins.jar -s http://127.0.0.1:8080/ copy-job ...
***認証 [#keb73742]
java -jar jenkins-cli.jar [-s JENKINS_URL] -auth kohsuke:...
*逆引き [#c1b071c8]
**複数選択のパラメータを渡したい [#la71a7c6]
パラメータでテキストを用意しておくと、複数のパラメータが...
-出力例
JOB1 JOB2 JOB3 JOB4
**各ジョブで使うパラメータを外部ファイルで共通化したい [#...
Extended Choice Parameter pluginかExtensible Choice Param...
***Extended Choice Parameter plugin [#t93fb1c5]
設定でファイルからの読み込みやデリミタ―を指定してのパラメ...
-properitesファイルの例
param1=hoge,fuga,piyo
param2=db1,db2,db3
***下流ジョブの実行完了を待って、後続ジョブを実施したい→J...
ただしJOINPluginが実行完了を待つのはビルド後のJOBに限る。
*プラグイン [#c4f38323]
|ThinBackup|★★|設定バックアップ用。cronの書式で指定できる...
|Workspace Cleanup|★|ワークスペース削除用プラグイン。git...
|Role Strategy Plugin|★★★|権限管理ができる|
|Build Pipeline Plugin|★|上流、下流の関係が一目瞭然。ただ...
|Build Flow Plugin|★|DSLで制御できるらしいぞ!|
|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|ビルド失敗でアイコンが変化|
**build flow plugin 研究 [#z5004ca1]
-並行制御は下流ジョブの終了までは考慮しない。各並行の中に...
-if文などが使える
// パラメータの表示
out.println params
// if
if (params["TARGET_BRANCH"] == "master") {
out.println "TARGET_BARNCH is master"
} else {
out.println "TARGET_BARNCH is not master"
}
join = parallel ([
first: { build("job1", param1: "passed by build ...
second: { build("job2") },
third: { build("job3") }
])
out.println join.first.result.name
// job4 will be triggered after jobs 1, 2 and 3 complete
build("job4")
*設定ファイル(config.xml)を直接変更 [#ycd3a86b]
たくさんのjobを扱う場合ブラウザ経由で操作するとめんどくさ...
**JOBコピー [#n0f07afa]
初期状態ではユーザホームディレクトリに.hudsonというディレ...
**JOBバックアップ [#j2798f60]
バックアップするプラグインもあるが、他サーバーにJOBを移行...
cd $JENKINS_HOME
find jobs/ -name "config.xml" -print0 | tar -cvz -T - --...
findとtarの間にxargsを使ってしまうと、アーカイブするファ...
**設定変更 [#da7c08bb]
各ジョブのディレクトリに入りconfig.xmlを変更する。
**設定反映 [#z3d4b8c5]
そのままではhudsonのメモリ上にあるものが使われてしまう。...
[hudsonの管理]から[設定の再読み込み]を実行する。
**デバッグテクニックなど [#u7862c42]
|環境変数の表示|シェルの実行でenv|
**主な環境変数 [#df22c1d2]
|WORKSPACE|JOBのワークスペース|
|JENKINS_HOME|JENKINS全体のHOME|
*トラブルシューティング [#pfb294e1]
**ピン止めされたプラグイン [#kec8d927]
このバージョンのJenkinsでは、プラグインマネージャーでピン...
Jenkins標準のプラグインはJenkins本体をアップデートしたと...
**[No valid crumb was included in the request] [#z71ebe16]
この場合、トークンチェックに引っかかっているようだ。
正常な遷移にもかかわらず出てしまう場合がある。
その場合「Jenkinsの管理」→「グローバルセキュリティの設定...
CSRF対策をOFFにすることで回避できる。
#counter
ページ名: