ビルドサーバの構築を行いました。
今回はパッケージインストールからサーバを起動するところまで書きたいと思います。
前提としてビルドサーバでは、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年目で脱新人を目指してます。
フロントに興味を持ち始めた今日このごろ。
趣味は 麻雀 プログラミング 音楽。
運動不足を感じているため、ダンスを始めようかと思っています。
最近書いた記事
- 2019.06.26コンテナイメージの縮小
- 2019.05.27Chromeのユーザ切り替えで複数のAWS環境の管理をわかりやすくする
- 2019.04.15ECRのライフサイクルポリシー
- 2019.03.29KongでOAuth2の認証手順