CentOS に Jenkinsをインストール・ポートとURLの変更・ユーザ設定・プラグイン追加まで




投稿日:

Jenkinsの初期構築を「えいやっ!」とまとめて実施します。

・CentOS に Jenkinsをインストール。
・デフォルトポートを変更しURLを変更。
・ユーザ設定。
・プラグインの追加。
・他ミドルウェアとパスワードの一元管理

という感じです。


【インストール手順】

公式ドキュメントはこちら。
https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+RedHat+distributions
これ分かり易いのでそのまま実施しても大丈夫。でも今回はrpmでインストールします。

1, Javaのインストール
2, Jenkinsのインストール
3, JenkinsアクセスURLの変更
4, ログイン認証の追加
5, ユーザー(=自分)の追加
6, ログイン認証の設定変更
7, プラグインの追加
8, 番外編:他ミドルウェアとのユーザ・パスワード管理を一元化


1, Javaのインストール


 # yum install java-1.7.0-openjdk-devel

確認する。

# java -version
java version "1.7.0_45"
OpenJDK Runtime Environment (rhel-2.4.3.1.el5_10-x86_64 u45-b15)
OpenJDK 64-Bit Server VM (build 24.45-b08, mixed mode)

パスを追加。

# vi /etc/profile

export JAVA_HOME=/usr/java/default
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar



2, Jenkinsのインストール


今回はrpmで導入する。rpmはこちら。必要なものを選びましょう。
http://pkg.jenkins-ci.org/redhat/

# cd /usr/local/src/
# rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
# wget http://pkg.jenkins-ci.org/redhat/jenkins-1.546-1.1.noarch.rpm
# rpm -ivh jenkins-1.546-1.1.noarch.rpm
準備しています...              ################################# [100%]
更新中 / インストール中...
   1:jenkins-1.546-1.1                ################################# [100%]

起動する。

# /etc/init.d/jenkins start
Starting Jenkins                                           [  OK  ]

ブラウザで「http://サーバのIP:8080/」で確認します。

ポート8080が開いていることを確認しましょう。iptablesとか。

表示されましたね。これでインストールは完了です。次は初期設定です。


3, JenkinsアクセスURLの変更


今回はブラウザアクセスを「http://jenkins.ドメイン名/」でアクセスできるように
Apacheプロキシを利用します。

■ Jenkins先生のファイルの修正

# cp -rp /etc/sysconfig/jenkins /etc/sysconfig/jenkins.bak
# vi /etc/sysconfig/jenkins

JENKINS_PORT="8010"
JENKINS_ARGS="-prefix=/jenkins"



■ Apache の設定変更

今回はバーチャルホスト追加で対応します。

# vi /etc/httpd/conf/httpd.conf

NameVirtualHost ローカルIP:8010

    <VirtualHost ローカルIP:80>
       ServerAdmin root@localhost
       ServerName jenkins.ドメイン名
       <Location />
            ProxyPass http://ローカルIP:8010/
            ProxyPassReverse  http://ローカルIP:8010/
       </Location>
    </VirtualHost>



■ JenkinsとApache の再起動

# /sbin/service jenkins restart
# /sbin/service httpd restart



■ 「jenkins.ドメイン名」の名前解決設定

DNSにて「jenkins.ドメイン名」を設定。できない場合は、/etc/hosts等に追記しましょう。

■ 確認

ブラウザで「http://jenkins.ドメイン名」とアクセスする。

表示されました!

※ 設定画面で、URLを設定する場合は、「http://jenkins.ドメイン名」と設定すること。
デフォルトのままだと設定画面はhttp://サーバのIP:8080/となっています。


 【追記】

以下のようにデフォルトでローカルIPになっていますので、こちらを現在設定のURLに変更する必要があります。


Jenkins管理画面ログイン > Jenkinsの管理 > システムの設定 > Jenkinsの位置 > Jenkins URL を変更します。


jenkinsURL

参考:Jenkinsでグラフを描写しようとするとエラー「HTTP ERROR 400:This page expects a form submission」 | 田舎に住みたいエンジニアの日記
http://blog.ybbo.net/2014/01/25/jenkins%E3%81%A7%E3%82%B0%E3%83%A9%E3%83%95%E3%82%92%E6%8F%8F%E5%86%99%E3%81%97%E3%82%88%E3%81%86%E3%81%A8%E3%81%99%E3%82%8B%E3%81%A8%E3%82%A8%E3%83%A9%E3%83%BC%E3%80%8Chttp-error-400%EF%BC%9Athis-pag/



ここから先はこちらをまるまる参考にしました。

さくらの VPS に Jenkins を入れてみた – Qiita [キータ]
http://qiita.com/himagurashi/items/f79d129a7e2caedd5fd9



4, ログイン認証の追加


デフォルトではアクセスしたすべてのユーザに権限が与えられています。
ユーザログイン方式に切り替えましょう。

左メニュー > Jenkinsの管理 > グローバルセキュリティの設定

「セキュリティを有効化」にチェック

アクセス制御 > ユーザー情報 > 「Jenkins のユーザーデータベース」、「ユーザーにサインアップを許可」にチェック
アクセス制御 > 権限管理 > 「ログイン済みユーザーに許可」にチェック

保存 (トップ画面に戻る)

これでユーザを作成出来るようになりました。


5, ユーザー(=自分)の追加


Jenkins トップ > アカウント登録 > サインアップ

「ユーザー名」、「パスワード」、「パスワードの確認」、「フルネーム」、「メールアドレス」を入力して、サインアップする。

「成功」と表示されればOK。

※ ユーザ名とパスワードを忘れずに!



6, ログイン認証の設定変更


この設定は失敗すると誰もログイン出来なくなります。注意を。

Jenkinsの管理 > グローバルセキュリティの設定

アクセス制御 > ユーザー情報 > 「ユーザーにサインアップを許可」 のチェックオフ

アクセス制御 > ユーザー情報 > 権限管理 > 「行列による権限設定」 にチェック

先ほど作成したユーザー名(自分)を入力して、追加する。 
  ※ ここでアカウント名を間違えないように!

ユーザー名(自分) の行のチェックを全てオン(一番右に一括オンオフボタン有り)
匿名ユーザー の行のチェックを全てオフ (デフォルト)

そして、保存。ログアウトする。

ログインパネルのみ表示で、新規のサインアップリンクは無くなっている。

自分のユーザー名、パスワードでログインが確認出来れば、OK。

一応、ログイン出来なくなってしまったら、なんとかする方法はあるようです。


7, プラグインの追加


以下のサイトでお勧めしているプラグインの一部を追加してみました。

プラグインはデフォルトで多種多様なものが用意されているので、必要なもの・好きなものを入れます。

Jenkins がもっと便利になるおすすめプラグイン 8 つ (フェンリル | デベロッパーズブログ)
http://blog.fenrir-inc.com/jp/2012/12/jenkins_plugins.html

Jenkins がもっともっと便利になるプラグイン 8 つ (フェンリル | デベロッパーズブログ)
http://blog.fenrir-inc.com/jp/2013/03/jenkins-2.html



紹介されているプラグインリストです。

Log Parser Plugin:ログ出力から失敗ビルドにしたり色付けさせたりできる
Clone Workspace SCM Plugin:別プロジェクトのワークスペースの内容をコピーできる
Simple Theme Plugin:好みのテーマに変更できる
Redmine Plugin:Redmineと連携
PegDown Formatter Plugin:Markdown風表示で書ける
Shelve Project Plugin:必要のなくなったプロジェクトをアーカイブできる
Build Trigger Badge Plugin:ビルドのトリガとなった要因をバッジで簡単に確認できるようになる
Configuration Slicing Plugin:各プロジェクトの設定を一括変更できる
Multiple SCMs Plugin:複数 SCM プラグインを SCM ジョブで実行できる
Timestamper:コンソール出力に時間を表示する
Custom Job Icon Plugin:ジョブ一覧にアイコンを追加
Validating String Parameter Plugin:チェック付き文字列パラメータを追加する
AnchorChain plugin:各ビルド結果のサイドバーにリンクを作成する
Mask Passwords Plugin:コンソール出力に表示されるパスワードをマスクする



Jenkinsの管理 > プラグインの管理 > プラグインの選択。
インストール完了後、「JOBが無ければ、再起動する」というボタンにチェックを入れることで、その場でブラウザから再起動可能。


8, 番外編:他ミドルウェアとのユーザ・パスワード管理を一元化


将来的にユーザをredmineやGithabと統一したい時は、OAuthクライアントを利用して可能です。
ただし、ミドルウェアのバージョンに縛りがあります。入れる場合はご注意を。もしくはLDAP等で管理しましょう。


Redmine・Gitlab・Jenkins のログインパスワードの管理が大変になったので OAuth 化した – すえひろがりっっっっ!
http://d.hatena.ne.jp/suer/20130530/redmine_oauth





【参考】

さくらの VPS に Jenkins を入れてみた – Qiita [キータ]
http://qiita.com/himagurashi/items/f79d129a7e2caedd5fd9

Jenkins がもっと便利になるおすすめプラグイン 8 つ (フェンリル | デベロッパーズブログ)
http://blog.fenrir-inc.com/jp/2012/12/jenkins_plugins.html

Jenkins がもっともっと便利になるプラグイン 8 つ (フェンリル | デベロッパーズブログ)
http://blog.fenrir-inc.com/jp/2013/03/jenkins-2.html

Redmine・Gitlab・Jenkins のログインパスワードの管理が大変になったので OAuth 化した – すえひろがりっっっっ!
http://d.hatena.ne.jp/suer/20130530/redmine_oauth