ビルドサーバの構築を行いました。 今回はパッケージインストールからサーバを起動するところまで書きたいと思います。 前提としてビルドサーバでは、GitHub と連携し Push されたタイミングで Job を実行します。 ビルドは、Gradle で行います。
要件
パッケージ名(バージョン)
- JDK (8系なら良し)
- Git (よしなに)
- Nginx (よしなに)
- Jenkins (よしなに)
- Gradle (よしなに)
こうみるとざっくりとしてますね…
パッケージインストール
Jenkins
yum を利用して Jenkins をインストールするには、リポジトリ情報を追加してインストールします。
# wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
# rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
# yum install jenkins
Git
Jenkins と GitHub で連携するため Git をインストールします.
# yum install git
JDK
GitHub から clone したJavaのソースコードをコンパイルするためインストールします。
# yum install java-1.8.0-openjdk-devel
Gradle
Java のソースコードをコンパイルするため、Gradle をインストールします。Gradle は yum でインストールすることができないようです。SDKMAN( rbenv とか pyenv みたいなもの)というパッケージマネージャを利用すればインストールはできますが、HOME 直下にインストールされてしまいます。(自分の開発環境とかで導入してみると使いやすいかも) サーバだと管理しづらいと思ったので、結局手動でインストールしました。
# wget -N https://services.gradle.org/distributions/gradle-3.1-all.zip
# unzip /home/reco-dev/gradle-3.1-all.zip -d /opt
# ln -s /opt/gradle-3.1 /opt/gradle
Nginx
# yum -y install nginx
Nginxの設定
httpリクエストがきた際に Jenkins のページが表示されるように設定
/etc/nginx/conf.d/jenkins.conf
upstream jenkins_server {
server 127.0.0.1:8080 fail_timeout=0;
}
server {
listen 80;
server_name localhost;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ / {
proxy_read_timeout 300;
proxy_connect_timeout 300;
proxy_redirect off;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://jenkins_server;
}
}
Jenkinsとデフォルトポート80が衝突するので80ポートを適当に変更する
/etc/nginx/nginx.conf
server {
listen 8000 default_server;
listen [::]:8000 default_server;
server_name localhost;
Nginx と Jenkins の起動
# server nginx start
# server jenkins start
システム起動時の設定
システム起動時に Nginx と Jenkins を自動起動するよう設定
# chkconfig --add nginx
# chkconfig nginx on
# chkconfig --add jenkins
# chkconfig jenkins on
おわりに
今回はビルドサーバに必要なパッケージのインストール手順について書きました。次回はJenkinsのJob作成について書きたいと思います。
高橋克幸
新卒3年目で脱新人を目指してます。
フロントに興味を持ち始めた今日このごろ。
趣味は 麻雀 プログラミング 音楽。
運動不足を感じているため、ダンスを始めようかと思っています。