39
44

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

CYBIRDエンジニアAdvent Calendar 2015

Day 19

2016年になっても、これさえ入れておけば大丈夫。Jenkins Plugin Must Install 16選!! 

Last updated at Posted at 2015-12-18

ごあいさつ

こんにちは。CYBIRDエンジニア Advent Calendar19日目のcy-katsuhiro-miuraです。

最近、めっきりコードを書いておりません。なんだかMTGばかりの毎日を過ごしているので、久しぶりにデブい内容の話をすると楽しいですね。

18日目はcy-hiroshi-chibaさんのGoogle Chartsを使ってみたでした。

僕もjavascriptそろそろ勉強しなおさないといけないなぁと思っているとこなので、こういう記事はタメになりますね!

Jenkinsおじさん

最近、Jenkinsおじさんの人気、高いですよね。
自分もJenkinsおじさん大好きです。
弊社にも、Jenkinsサーバたくさんあるのですが、結構、サーバによって、入っているPluginにバラツキがあるんですよね。

今回は、自分がJenkins使ってて、これ超便利じゃね!?ってなったプラグインをご紹介します。

2016年、新しい年に新しいJenkinsサーバを立てる時にこの記事がみなさまの参考になれば幸いです。

ソース管理

GIT plugin

GitHub plugin

まずはGit。
Jenkinsをインストールすると、Subversion Plug-inとかCVS Plug-inとかは入ってます。
ですが、なぜかGitが入ってない。
いまどき、マジか。
仕方ないのでこれを入れましょう。
Githubでソース管理してるならGitHub pluginも一緒に。
Assemblaとか、Bitbucketとか、GitLabとかもあるのでご自身の環境に合わせて適当に。

##ユーザ認証と権限

Redmine OAuth Plugin

うちのJenkinsサーバは、各プロジェクト単位で立っているので、
全部で十数台あり、これでユーザ管理を個別でやるのは、とても面倒くさいです。
なので、ユーザ認証をRedmineでやることにしました。

まずここ↓を参照してRedmineのユーザでOAuth認証できるようにします。
【Redmine・Gitlab・Jenkins のログインパスワードの管理が大変になったので OAuth 化した】

ここ↓に載ってる
[Jenkins のプラグインの配布に JitPack.io が便利過ぎる件]
(http://d.hatena.ne.jp/mallowlabs/20150419/jenkins_plugin_from_jitpack)

↓このhpiをDLしてきてインストールしてます。
Redmin-OAuth-Plugn

【注意点(というかハマったとこ)】
普通にJenkinsをインストールするとポートが8080で上がってくると思います。
これを80で受けれるように、ApacheのProxyとかでlocalhost:8080に流したりしていると、OAuthで認証したあとリダイレクトする先がlocalhost:8080になってしまいます。
なのでこれを回避するには、

  • 8080で運用する。
  • iptablesで8080 -> 80に流す
  • Jenkinsをポート80で上げる

みたいなことをしないといけないです。

Role-based Authorization Strategy

Redmineで認証できるようになったので、ほっとくとRemineに登録されている全ユーザが全Jenkinsのjobを実行できるようになってしまいます。
中には、1台で複数のプロジェクトのJobを回してるJenkinsがあったり、管理者しか実行してほしくないJobがあったりもするので、こいつでView単位で見えたり見えなかったり、実行できたりできなかったり、といった制御をするロール作っています。

Build Job管理

Job Import Plugin 

前述したように、弊社には複数台のJenkinsサーバがあるんですが、実行してるJobは、割りとみんな似たり寄ったりだったりします。
そんな時はこれ。
別のJenkinsサーバのJobをImportできます。
「既存ジョブのコピー」は同サーバのジョブのコピーですが、別のJenkinsサーバのJobをコピーしたいときはこれ。
 

Build Flow管理

Build Pipeline Plugin

簡単なFlowならこれ。
「Build Plugin View」が作れるようになります。
「他プロジェクトの後にビルド」とかで関連付けたJob同士の前後関係がでJobの前後関係が図になってて、わかりやすいです。

CloudBees Build Flow plugin

ちょっと複雑なことをやるならこれ。
DSLでJobの実行順を定義できる。並列実行させたり、パラメータ変えながらの繰り返し実行も大丈夫。
ただし、↑の[Build Pipeline Plugin]では、順次実行した結果が見えないです。

Build Graph View Plugin

で、[Build Flow Plugin]で実行した結果を図で表示するならこちら。

スクリーンショット_2015-12-17_22_50_47.png
こんな感じ。

Build Parameters系

Parameterized Trigger Plugin

Parameterized Remote Trigger Plugin

別のJobの実行完了をトリガーにしてJobを実行します。
[Parameterized Trigger Plugin]は同一JenkinsのJobで、
[Parameterized Remote Trigger Plugin]は別のJenkinsサーバのJobで。
前実行のJobのパラメータを引き継いだり、実行結果を元にパラメータを作ったり。

Matrix Configuration Parameter Plugin

パラメータを変えて何度もBuildする必要があるけど、
そのパターンがマトリックスになってる時、よくありますよね。
そんな時はこれ。

Rebuilder

https://wiki.jenkins-ci.org/display/JENKINS/Rebuild+Plugin
も一回Buildします。
これ、何が便利かというと、その時に実行したパラメータでもう一回Buildできるってとこ。
別のJobから起動されるJobとかGitHubのPullRequestをフックに動かしてるやつとか、渡ってくるパラメータが一杯あったり動的に変わるやつを、手動で動かさないといけない時とかに便利です。

結果通知

ChatWork Plugin

HipChat,[Slack](lack Notification Plugin)もありますが、弊社はChatwork。
日本語なのは便利じゃないですか。

Twilio Notifier Plugin

もうホントにクリティカルなJobの結果はメールでもチャットでもなく、もっとしっかり把握したいという人向け。
なんと電話がかかってきます。
電話口でメッセージやステータスも読み上げてくれます。
Twilioのアカウントが必要なので、事前に取得しておきましょう。

その他

 

Metrics Disk Usage Plugin

スクリーンショット 2015-12-17 22.38.30.png

JenkinsのDisk容量をかんしてくれます。
Buildを何度も回してるとローカルに成果物が一杯溜まってしまいがち。
これが入っていれば、なんのプロジェクトが容量をくってるのかも、一目瞭然。

Build Trigger Badge Plugin

Kobito.lOk7TT.png

ビルド履歴の横に、何をトリガーにして実行されたかのバッチが表示されます。
先週に手動で実行した時の条件でももう一回実行したい、みたいな時、履歴を追うのが楽ちんでいいですね。

最後に

Jenkinsにかぎらず、便利なツールが使いこなせるのってカッコイイですよね。
自分もJenkinsを使いこなせているとはまだまだ言えないので、これからも精進したいと思います。

CYBIRD エンジニア Advent Calendar 明日は、CYBIRDエンジニアNo1イケメン(俺調べ)の@sgtさんの「UIWebViewに甘んじてた俺がWKWebViewというパンドラの箱を開けた話」です!

楽しみですね!

39
44
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
39
44

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?