JenkinsをCentOS/RedHatに入れる

Jenkinsがyumのリポジトリを公式に公開しているため、初期導入作業はほぼyumで完結します。またわかりやすい手順が公式Wikiに掲載されていますので、ここではそれに習った形で記載していきます。

システムの必要要件

公式Wikiによると現時点での条件は以下となっています。

Jenkins requires Java7 or above to function. Java8 is recommended. Jenkins requires a fair amount of memory to operate well. Smaller installations should start around 256MB-1GB.

  • Java7以上が必要(Java8を推奨)
  • メモリ256M〜1G程度

最近のVPSサーバやクラウドであればさほど難しくなくクリアできるかと思います(他のサービスと同居させる場合は注意)。もちろんサーバではなくローカル環境に入れるのもOK。

インストール

yumのリポジトリ追加

リポジトリは安定版(stable)と最新版に別れていますが、大抵の場合には安定版を入れれば良いでしょう。

$ sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo
$ sudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key

最新版を入れたい場合は http://pkg.jenkins-ci.org/redhat/jenkins.repo をwgetしてください。

Jenkinsのインストール

yumで一発です。

$ sudo yum install jenkins

Javaのインストール

Jenkins自体はJavaで書かれているため、動作にはJavaの実行環境が必要です。

JenkinsではJava7以上、Java8を推奨しています。すでにJavaがインストールされている場合で、Java7に満たない際は一度削除した後に、最新版のインストールを行ってください。

$ sudo yum remove java

以下のようにjavaとだけ指定するといい感じにOpenJDKを入れてくれます。

$ sudo yum install java
$ java -version
openjdk version "1.8.0_71"
OpenJDK Runtime Environment (build 1.8.0_71-b15)
OpenJDK 64-Bit Server VM (build 25.71-b15, mixed mode)

もしリポジトリが腐っている古いままで、旧いバージョンを入れてしまう場合は個別にパッケージを指定してください。

$ yum search OpenJDK
java-1.6.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.6.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.6.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.6.0-openjdk-javadoc.x86_64 : OpenJDK API Documentation
java-1.6.0-openjdk-src.x86_64 : OpenJDK Source Bundle
java-1.7.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.7.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.7.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.7.0-openjdk-javadoc.noarch : OpenJDK API Documentation
java-1.7.0-openjdk-src.x86_64 : OpenJDK Source Bundle
java-1.8.0-openjdk.x86_64 : OpenJDK Runtime Environment
java-1.8.0-openjdk-debug.x86_64 : OpenJDK Runtime Environment with full debug on
java-1.8.0-openjdk-demo.x86_64 : OpenJDK Demos
java-1.8.0-openjdk-demo-debug.x86_64 : OpenJDK Demos with full debug on
java-1.8.0-openjdk-devel.x86_64 : OpenJDK Development Environment
java-1.8.0-openjdk-devel-debug.x86_64 : OpenJDK Development Environment with full debug on
java-1.8.0-openjdk-headless.x86_64 : OpenJDK Runtime Environment
java-1.8.0-openjdk-headless-debug.x86_64 : OpenJDK Runtime Environment with full debug on
java-1.8.0-openjdk-javadoc.noarch : OpenJDK API Documentation
java-1.8.0-openjdk-javadoc-debug.noarch : OpenJDK API Documentation for packages with debug on
java-1.8.0-openjdk-src.x86_64 : OpenJDK Source Bundle
java-1.8.0-openjdk-src-debug.x86_64 : OpenJDK Source Bundle for packages with debug on

$ sudo yum install java-1.8.0-openjdk

起動・停止(Start/Stop)

起動・停止は他のサーバソフトウェアと同じ要領です。

$ sudo service jenkins start

stopで停止、restartで再起動できます。他のコマンドは以下を参照。

$ sudo service jenkins
Usage: /etc/init.d/jenkins {start|stop|status|try-restart|restart|force-reload|reload|probe}

ついでに自動起動の設定もしておきましょう。

$ sudo chkconfig jenkins on
$ chkconfig --list | grep jenkins
jenkins         0:off   1:off   2:on    3:on    4:on    5:on    6:off

iptables/firewalldでポート開放

Jenkinsはデフォルトでポート番号8080で稼働します。
もしiptablesやfirewallなどを利用している場合は開放を行うなどの設定が必要です。

$ sudo vi /etc/sysconfig/iptables
# Jenkins
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

$ sudo service iptables restart

CentOS7以降でfirewalldを使用している場合は以下のように。

$ sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
$ sudo firewall-cmd --zone=public --add-service=http --permanent
$ sudo firewall-cmd --reload

初期設定

ブラウザで http://example.com:8080/ へwebブラウザからアクセス(example.comはインストール先のFQDNに置き換えてください)、無事にJenkinsの画面が表示されればインストールはひとまず完了です。執事のおじさまが左上に表示されていますよね。お疲れ様でした…と行きたいところですが、ところがどっこいもうひと踏ん張り必要です。このままだと誰でも設定をいじれてしまうため、アクセス制限をしなくてはなりません。Linuxでいうところのrootでログイン済みの画面が一般開放されちゃってる感じですね。

グローバルセキュリティ設定

ホーム画面(トップ画面)から、

  1. 左側のメニュー「Jenkinsの管理」をクリック
  2. 「グローバルセキュリティの設定」をクリック

設定画面が開いたら「セキュリティを有効化」にチェックし、ユーザー情報欄の「Jenkinsのユーザーデータベース」を選択、最後にページ下部にある「保存」ボタンをクリックします。

グローバルセキュリティの設定画面

ユーザー作成

次にログインするユーザーを作成します。
ホーム画面(トップ画面)から、

  1. 左側のメニュー「Jenkinsの管理」をクリック
  2. 「ユーザーの管理」をクリック
  3. 左側のメニュー「ユーザー作成」をクリック

ページが開いたら必要な情報を入力します。

ユーザー作成画面

  • ユーザー名はログインする際に用いる物です。
  • フルネームは表示用。
  • メールアドレスにはJenkinsからビルド結果などが通知されます。

「サインアップ」ボタンをクリックしてユーザー作成が完了です。

権限管理

最後に、先ほど作成したユーザーでのみJenkinsを扱えるように設定を行います。この設定を間違えるとログインできなくなるので注意して行ってください。

ホーム画面(トップ画面)から、

  1. 左側のメニュー「Jenkinsの管理」をクリック
  2. 「グローバルセキュリティの設定」をクリック

ページが表示されたら、「権限管理」の欄にある「追加するユーザー/グループ」に先ほど作成したユーザー名を入力し「追加」ボタンをクリックします。するとすぐ上にある「匿名ユーザー」の下にユーザーが追加されたと思います。\ \ 匿名ユーザーのチェックをすべて外し、先ほど追加したユーザーのチェックをすべてつけます(一番右端にあるボタンで一括チェックできます)。

権限管理画面

「保存」ボタンをクリックして設定が完了。

ログアウトして確認

ページ右上にある「ログアウト」をクリックし、以下のような表示になれば設定が正常に完了しています。

ログイン画面

もしも設定を間違えた場合は?

ユーザーの権限設定を間違えてしまいログインができなくなった場合、SSHなどでシェルにログインし設定ファイルを直接編集してください。

$ sudo vi /var/lib/jenkins/config.xml
<useSecurity>false</useSecurity>

$ sudo service jenkins restart

config.xml内にあるuserSecurityの項目をtrueからfalseに変更して保存。あとはJenkinsを再起動するだけです。

参考サイト

以下のページを参考にさせていただきました。ありがとうございます!