Jenkins

Jenkinsをインストールしたら入れるプラグイン18個

More than 1 year has passed since last update.

Overview

備忘録としてJenkinsをインストールした後大抵入れているプラグインを列挙 & 軽く解説

Build

Docker plugin

Dockerコンテナを使い捨てのスレーブとして起動出来るようになる。
ジョブ起動ごとにコンテナが起動するのでクリーンなビルド環境を維持、他環境への影響を抑えられる。
使い捨てのビルドに使ったり、使い捨てのテストに使ったり、CMツール(Chef, Ansible等)のCIに使ったり用途色々。

スレーブで利用するイメージはランタイムごとにタグを分けてDockerHubでAutomation Buildしておけばジョブごとに好きなランタイムでビルド出来て良い感じになる。
例). shufo/jenkins-slave-ubuntu (phpとnodejsのランタイムは作ってある)をスレーブとして使うとすると、JenkinsのDocker Pluginの設定で shufo/jenkins-slave-ubuntu:phpshufo/jenkins-slave-ubuntu:nodejsを指定すればそれぞれphpとnodejsがランタイムのスレーブコンテナが起動する。

CloudBees Docker Build and Publish plugin

Dockerfileのビルドやレジストリへのプッシュが選択式で簡単に出来るようになる

Build Token Root Plugin

リモートからトークンを使用してジョブを叩けるようになる。
例). RevolutionTestというジョブでTacoTuesdayというtokenを使ってビルドしたい場合

→ジョブ設定画面よりtokenを指定し外部からエンドポイントにリクエストを送る

curl -X GET http://jenkins.example.com/buildByToken/build?job=RevolutionTest&token=TacoTuesday

Conditional-Buildstep

ビルドステップに条件を追加し複雑な条件でビルドが出来るようになる
例). pushされたgitのブランチがmasterのときのみ特定の下流ビルドを実行など

Dynamic Parameter Plug-in

Groovyスクリプトで外部APIを叩いてビルド時に動的にパラメータを生成することが出来るようになる
例). docker registryのタグ一覧を取得しパラメータとして生成

import groovy.json.*

String result = ['/bin/bash', '-c', "/usr/bin/curl -X GET http://${registry_url}/v1/repositories/namespace/image_name/tags"].execute().text
def json = new JsonSlurper().parseText(result)
def list = json.keySet()
List tags = []
tags.addAll(list)

この場合tagsに入ったタグの一覧がパラメータのオプションとして利用出来るようになる。
外部APIと連携して動的にタスクを実行したい場合などに使える。

EnvInject Plugin

環境変数をビルドプロセスに注入出来るようになる。
パスワードを環境変数として注入することも出来るので、AWSのシークレットキー等ハードコーディングしたくないけど色々なタスクで共有して使いたい場合はこれを使う。

Flexible Publish Plugin

ビルド後の処理プロセスで条件付きビルドステップを作れるようになる
Jenkinsデフォルトで出来てもよさそうだけどなぜか出来ないので入れる

GIT plugin

Gitを使うなら必須

ShiningPanda Plugin

ビルドごとに独立したvirtuelenv環境を作ることが出来る。既存のPython環境を壊したくない場合などに。

Appearance

Categorized Jobs View

ビューを正規表現でグルーピング出来る。

HTML5 Notifier Plugin

ビルドの成功や失敗の通知をHTML5のNotificationとして出してくれるようになる。

PegDown Formatter Plugin

ジョブの説明欄をMarkdown形式で入力出来るようになる

Build Trigger Badge Plugin

ビルドの原因をジョブの実行履歴にアイコンとして表示出来るようになる
流し見でビルドの原因が分かるようになるのでおすすめ

Utility

Job Configuration History Plugin

ジョブ設定のAuditがあると後で何かと役に立つので入れておく

Authentication & Authorization

Role Strategy Plugin

ロールを定義しユーザに割り当てることで詳細な権限管理が出来るようになる

例). 「example-.*」という正規表現に該当するプロジェクトのジョブのread, write権限を「example-read-write」と定義し、user1とauthenticatedグループに割り当て

というようなことが出来るようになる。

ビルトインのグループとして「authenticated」というログイン済みユーザのグループと「anonymous」という未ログインユーザを指すグループがあるがLDAP pluginを使っていればLDAPのグループ名をRole Strategy Pluginのグループ名として利用出来る。

Google Login Plugin

Googleアカウントでログイン出来るようになる。Appsを使っている場合は対象ドメインを制限することも可能。

Theme

Simple Theme Plugin

テーマを追加出来るようになる。

個人的には ModernJenkins-Theme がシンプルでスタイルの崩れもなくてよかった。
CDNで配信されていないファイルの場合は $JENKINS_HOME/userContent 以下にファイルを配置して読み込む。

例).
URL of theme CSS

https://jenkins.example.com/userContent/ModernJenkins-Theme/master.css

URL of theme JS

https://jenkins.example.com/userContent/ModernJenkins-Theme/master.js

Backup

ThinBackup

軽量バックアッププラグイン。
設定ファイル類のみ等に絞ってバックアップを設定、またスケジューリングで定期バックアップを設定出来る。

Chrome拡張

プラグインではないけどChromeに入れることで便利になる拡張

Jenkins Terminal Colors

コンソール出力に色がつく