やりたいこと
- yumでインストールする
- 最新安定版を使う (2016/7/26 時点では、2.7.1)
- Apacheと連携する (ブラウザから8080ポートを使用しない)
- 他のアプリも同一サーバで使用するので、prefixを/jenkinsにする。
前提
以下は構築済み
- EC2インスタンス:Amazon Linux AMI (t2.micro)
- Apache : 2.4
Jenkinsのインストール
Javaのバージョンの確認する。
$ java -version
java version "1.7.0_101"
OpenJDK Runtime Environment (amzn-2.6.6.1.67.amzn1-x86_64 u101-b00)
OpenJDK 64-Bit Server VM (build 24.95-b01, mixed mode)
yumリポジトリの追加とRPMパッケージの公開鍵をインポートする。
$ sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins.io/redhat-stable/jenkins.repo
$ sudo rpm --import http://pkg.jenkins.io/redhat-stable/jenkins.io.key
Jenkinsのバージョンを確認してインストールする。
$ sudo yum list available | grep jenkins
jenkins.noarch 2.7.1-1.1 jenkins
$ yum install jenkins
サービスを起動する。
$ sudo service jenkins start
$ sudo chkconfig httpd on
EC2インスタンスのセキュリティグループで8080が開いていることを確認し、
ブラウザでJenkinsにアクセスし、認証とプラグインのインストールを実行する。
http://ec2-xxx-xxx-xxx-xxx.ap-northeast-1.compute.amazonaws.com:8080/
インストールは終了。
Apacheと連携
Apacheとの連携について、Jenkins(1.x)では、AJPを使用していたが、Jenkins2.xでは、プロキシを使用する。
Jenkins側の設定を変更する。
$ sudo vi /etc/sysconfig/jenkins
JENKINS_PORTの変更と、JENKINS_ARGSにprefixを追加する。
# JENKINS_PORT="8080"
JENKINS_PORT="8081"
# JENKINS_ARGS=""
JENKINS_ARGS="--prefix=/jenkins"
Apache側にJenkinsの設定を追加する。
$ sudo vi /etc/httpd/conf.d/jenkins.conf
内容は以下の通り。
ProxyPass /jenkins http://localhost:8081/jenkins nocanon
ProxyPassReverse /jenkins http://localhost:8081/jenkins
ProxyRequests Off
AllowEncodedSlashes NoDecode
<Proxy http://localhost:8081/jenkins*>
Order deny,allow
Allow from all
</Proxy>
JenkinsとApacheのサービス再起動する。
$ sudo service jenkins restart
$ sudo service httpd restart
EC2インスタンスのセキュリティグループで8080を削除し、
ブラウザでJenkinsにアクセスし、Jenkinsにアクセスできることを確認する。
http://ec2-xxx-xxx-xxx-xxx.ap-northeast-1.compute.amazonaws.com/jenkins