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:php
、shufo/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
コンソール出力に色がつく