Edited at

さくらのVPSにjenkinsをインストールして、テストOKで自動デプロイする環境を構築する(1)

More than 3 years have passed since last update.


サーバーの現状

これまで以下のインストール作業を行った。

さくらのVPSにLAMP環境構築する

さくらのVPSにphpMyAdminをインストールする


目指す完成形

文字では理解し難いので図を用意してみた。

以下の構成を目指すが、今日はjenkinsのインストールと最低限の設定だけ行う。

system.jpg


  1. ローカルのVagrant上で開発

  2. GitHubにPush(gitflow形式で運用)

  3. GitHubに設定するwebhookでjenkinsに通知

  4. jenkinsさんがGitHubからソース落とす

  5. jenkinsさんがテスト走らせる

  6. テスト結果をSlackのプロジェクトチャンネルに通知

  7. テストOKで該当環境のDocumentRoot上にデプロイ

個人なので予算などなく、何から何までさくらのVPS1台で済ませる。

会社ではGitHubの代わりにGitBucketを使用。

ちゃんとjenkins&確認用サーバーと別途本番サーバーを用意して

jenkinsでのテストOKでjenkinsで本番サーバーにSSHで入ってPullするコマンド実行させてる。


jenkinsのインストール

公式のリポジトリがあるのでyumでインストールする

http://pkg.jenkins-ci.org/redhat/

公式のインストール手順

https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Red+Hat+distributions

書いてあるコマンドをそのまま実行

# sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo

--2015-07-08 23:43:07-- http://pkg.jenkins-ci.org/redhat/jenkins.repo
Resolving pkg.jenkins-ci.org... 199.193.196.24
Connecting to pkg.jenkins-ci.org|199.193.196.24|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 75 [text/plain]
Saving to: `/etc/yum.repos.d/jenkins.repo'

100%[=================================================>] 75 --.-K/s in 0s

2015-07-08 23:43:07 (11.3 MB/s) - `/etc/yum.repos.d/jenkins.repo' saved [75/75]

# sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key

今回は事前に鍵も入れた。

Dependencies Resolved

===========================================================================================
Package Arch Version Repository Size
===========================================================================================
Installing:
jenkins noarch 1.619-1.1 jenkins 60 M

Transaction Summary
===========================================================================================
Install 1 Package(s)

Total download size: 60 M
Installed size: 60 M
Is this ok [y/N]: y

Installed:
jenkins.noarch 0:1.619-1.1

Complete!

インストール完了。

とりあえず起動してみる。

# /etc/init.d/jenkins start

Starting Jenkins bash: /usr/bin/java: No such file or directory
[FAILED]

失敗。java入ってなかった。


javaをインストール

# yum install java

Dependencies Resolved

===========================================================================================
Package Arch Version Repository Size
===========================================================================================
Installing:
java-1.8.0-openjdk x86_64 1:1.8.0.45-28.b13.el6_6 updates 187 k
Installing for dependencies:
giflib x86_64 4.1.6-3.1.el6 base 37 k
java-1.8.0-openjdk-headless x86_64 1:1.8.0.45-28.b13.el6_6 updates 32 M
jpackage-utils noarch 1.7.5-3.12.el6 base 59 k
libXfont x86_64 1.4.5-4.el6_6 updates 137 k
libfontenc x86_64 1.0.5-2.el6 base 24 k
ttmkfdir x86_64 3.0.9-32.1.el6 base 43 k
tzdata-java noarch 2015e-1.el6 updates 176 k
xorg-x11-font-utils x86_64 1:7.2-11.el6 base 75 k
xorg-x11-fonts-Type1 noarch 7.2-9.1.el6 base 520 k

Transaction Summary
===========================================================================================
Install 10 Package(s)

Total download size: 33 M
Installed size: 104 M
Is this ok [y/N]:y

Installed:
java-1.8.0-openjdk.x86_64 1:1.8.0.45-28.b13.el6_6

Dependency Installed:
giflib.x86_64 0:4.1.6-3.1.el6
java-1.8.0-openjdk-headless.x86_64 1:1.8.0.45-28.b13.el6_6
jpackage-utils.noarch 0:1.7.5-3.12.el6
libXfont.x86_64 0:1.4.5-4.el6_6
libfontenc.x86_64 0:1.0.5-2.el6
ttmkfdir.x86_64 0:3.0.9-32.1.el6
tzdata-java.noarch 0:2015e-1.el6
xorg-x11-font-utils.x86_64 1:7.2-11.el6
xorg-x11-fonts-Type1.noarch 0:7.2-9.1.el6

Complete!

javaインストール完了。


jenkinsを起動する

/etc/init.d/jenkins start

Starting Jenkins [ OK ]

無事起動完了、自動起動も設定しておく

# chkconfig jenkins on

デフォルトは8080ポートなので

http://example.com:8080/にアクセスしてみる

画面が表示されjenkinsのインストール完了した。

jenkins.jpg

※画面が表示されない場合、たぶんファイアウォールの設定かポートかぶりの可能性が高い。


jenkinsの設定

このままではjenkinsのURLにアクセスされたら何でもありなので

以下の手順で設定変更して、jenkins用のアカウント作って制限する。

大まかな流れは以下

1. サインアップできるように設定を変更

2. アカウント作る

3. サインアップできないようにする

4. 匿名アカウントの権限全部奪い、作ったアカウントに全権限付与

上記流れを以下の手順で行う。

1. 「Jenkinsの管理」をクリック

2. 「セキュリティを設定」をクリック

jenkins1.jpg

3. 「セキュリティを有効化」にチェック

※以下からはお好みのを選択

4. 「Jenkinsのユーザーデータベース」にチェック

5. 「ユーザーにサインアップを許可」はチェクしたまま

6. 「ログイン済みユーザーに許可」にチェック

7. 設定を保存する

8. ログイン画面になるので「アカウントを登録」をクリック

jenkins2.jpg

9. アカウント情報を入力して登録する

10. 「Jenkinsの管理」をクリック

11. 「グローバルセキュリティの設定」をクリック

12. 「ユーザーにサインアップを許可」のチェックを外す

13. 「行列による権限設定」にチェック変更

14. 作ったユーザー名を入力して「追加」をクリック

15. 匿名ユーザーは全部チェックなし

16. 作ったユーザー名は全部チェック(一番右のアイコンクリックで一括)

17. 保存する

18. 確認のため一度ログアウトする

19. 以下のようにログインフォームだけになればOK

jenkins3.jpg

20. 改めてログインして元の画面が表示されればアカウントの設定も完了


次回は

GitHubにプッシュしたらjenkinsに通知する設定を行う