必要に迫られて、自宅にCIサーバーを追加しました。
備忘録も兼ねて、最低限の手順を載せておきます。
前提
- OS: CentOS 7
- 構成: nginx(80番ポート) --> Jenkins(8080番ポート)
- SELinux: 無効(※ /etc/selinux/config ファイルで SELINUX=disabled)
インストール手順
1. nginx(エンジンエックス)
Webサーバーとして nginx をインストールします。
Jenkinsは、nginxのリバースプロキシ機能を通して、外部からアクセス可能とします。
(1) リポジトリを追加
# vi /etc/yum.repos.d/nginx.repo(2) nginx を yum でインストール
【以下の内容で保存します】
[nginx]
name=nginx repo #baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/ gpgcheck=0 enabled=0
# yum --enablerepo=nginx -y install nginx(3) ファイアウォールに対して http 接続を許可する
# firewall-cmd --zone=public --permanent --add-service=http(4) nginx を起動する
# firewall-cmd --reload
# systemctl start nginx
→ http://(IPアドレス)/ にてアクセスし、以下のページが表示されればOK
# systemctl enable nginx
2. Jenkins
(1) Java をインストール
(4) Jenkinsの設定を変更
Nginxをリバースプロキシとして、~/jenkins/でアクセスできるようにします。
(5) Jenkins を起動する
(6) Jenkins の自動起動をON
# yum install -y java(2) Jenkins の リポジトリ追加
# java -version
# cd /etc/yum.repos.d(3) Jenkins を yum でインストール
# curl -O http://pkg.jenkins-ci.org/redhat/jenkins.repo
# rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
# yum install --enablerepo=jenkins -y jenkins
(4) Jenkinsの設定を変更
Nginxをリバースプロキシとして、~/jenkins/でアクセスできるようにします。
# vi /etc/sysconfig/jenkins
JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Dhudson.util.ProcessTree.disable=true -Dorg.apache.commons.jelly.tags.fmt.timeZone=Asia/Tokyo"
〜
JENKINS_PORT="8080"
〜
JENKINS_ARGS="--prefix=/jenkins"
# systemctl start jenkins
# chkconfig jenkins on ※systemctl ではうまくいかないため…
2. nginx --> Jenkins 連携
(1) nginx にリバースプロキシ設定を追加
(2) nginx を再起動
# vi /etc/nginx/conf.d/jenkins.conf
【以下の内容で保存します】
upstream jenkins_server {
server 127.0.0.1:8080 fail_timeout=0;
}
# vi /etc/nginx/conf.d/default.conf
【serversディレクティブに追記】
※この他の設定は適宜追加して下さい
location ~ /jenkins { proxy_redirect off; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; proxy_pass http://jenkins_server; }
# systemctl restart nginx
→ http://(IPアドレス)/jenkins/ にてアクセスし、以下のページが表示されればOK
それではまた。
Happy Hacking!!