CentOS6.9にJenkinsを入れたメモ


はじめに

普段は概念設計と仕様書書くのがお仕事。
先日バリバリのIT屋さんに「CIツール使ったことないシステム屋が許されるのは学生までだよね(意訳」とのお言葉を頂いたので、とりあえずJenkins入れてみた。

環境

  • OS: CentOS 6.9 i686

最新のCentOS 7系だと、一部コマンドが違うので注意。

Jenkinsのインストール

javaのインストール

$ java --version
java version "1.7.0_161"
OpenJDK Runtime Environment (rhel-2.6.12.0.el6_9-i386 u161-b00)
OpenJDK Client VM (build 24.161-b00, mixed mode, sharing)

インストールされていることを確認。入ってなかったらインストールする。
後述するが、Jenkins起動時にエラーが出た場合、最新版を入れる。
この時点だと1.8.0が最新だった。

# yum install java-1.8.0-openjdk.i686

Jenkins本体のインストール

リポジトリを追加した後、yumを使ってインストールする。
なお、リポジトリはLTSのものを採用した。

# cd /etc/yum.repos.d/
# curl -O http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo
# rpm --import http://pkg.jenkins.io/redhat-stable/jenkins.io.key
# yum install jenkins

Jenkinsを起動する。合わせて、マシン起動時にJenkinsが起動するようにする。

# chkconfig jenkins on
# /sbin/service jenkins restart

次のエラーがでたらjavaのバージョンが低いので、最新版にする。

# /sbin/service jenkins start
Starting Jenkins Jenkins requires Java8 or later, but you are running 1.7.0_161-mockbuild_2017_12_06_14_08-b00 from /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.161/jre
java.lang.UnsupportedClassVersionError: 51.0
    at Main.main(Main.java:124)                            
                                                          [  OK  ]

うまく行っていたら、ちゃんとメッセージがでる。

# /sbin/service jenkins restart
Shutting down Jenkins                                      [FAILED]
Starting Jenkins                                           [  OK  ]

外部からアクセス可能にする(iptableの書き換え)

次のようにiptableを書き換えた。

$ cat /etc/sysconfig/iptables
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

書き足したのは、下から4行目の-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPTである。Jenkinsは通常8080ポートを使うので、このポートを開ける。
なお、下から2,3行目はiptablesの条件にマッチしなかった通信をすべてrejectする設定なので、それより前にACCEPTする通信を記述する必要がある。

Jenkinsの初期設定

IPaddress:8080にアクセスすると、次の画面が見える。

以下のコマンドで確認できるパスワードを入力する。

# cat /var/lib/jenkins/secrets/initialAdminPassword

すると設定画面に移動する。

左のInstall suggested pluginsを選択して少し待つ。
すると最初のAdminユーザーの設定に移る。

設定等については、別途記述としたい。