そこに仁義はあるのか(仮)

略してそこ仁!

CentOSにGitBucketをたててみた

会社でGit使いたいって言ったらサラッとOKが出た。
ただ、GitBucketを自分でたてなきゃいけないので、やり方を調べとく。
会社ではCentOSサーバを、触っていい環境として与えてもらえたので、家のMacVirtualBox入れて、CentOSをたてて試してみた!

環境

VirtualBox 4.3.28
CentOS-7-x86_64-Minimal-1503-01.iso

VirtualBoxCentOSssh接続するまでの設定は↓のページをみながらやった!
VirtualBoxにCentOS7をインストールしてみる - yk5656 diary

CentOS6とCentOS7では、ネットワーク設定のやり方が全然違っているので注意!

JDKをインストールする

↓のコマンドを打つと、インストールできる jdkがいっぱいでてくるので、『〜devel』がついてるものをインストールする

[root@localhost ~]# yum search openjdk
[root@localhost ~]# yum install java-1.8.0-openjdk-devel.x86_64
[root@localhost ~]# java -version
openjdk version "1.8.0_45"
OpenJDK Runtime Environment (build 1.8.0_45-b13)
OpenJDK 64-Bit Server VM (build 25.45-b02, mixed mode)

環境変数を設定する。

ユーザ切り替えして、ユーザの.bashrcを編集する。

[root@localhost ~]# su <<ユーザ名>>
[syobochim@localhost root]$ cd ~
[syobochim@localhost ~]$ ls -la
合計 12
drwx------. 2 syobochim syobochim  59  5月 31 17:03 .
drwxr-xr-x. 3 root      root       22  5月 31 17:05 ..
-rw-r--r--. 1 syobochim syobochim  18  3月  6 07:06 .bash_logout
-rw-r--r--. 1 syobochim syobochim 193  3月  6 07:06 .bash_profile
-rw-r--r--. 1 syobochim syobochim 231  3月  6 07:06 .bashrc

javaの場所を知りたいときは↓

[syobochim@localhost ~]$ which java
/usr/bin/java

.bashrcに↓を追記する

export JAVA_HOME=/usr/bin/java

sourceでファイルを再読み込みすれば、値が設定される。

[syobochim@localhost ~]$ source .bashrc
[syobochim@localhost ~]$ echo $JAVA_HOME
/usr/bin/java

Jettyを配置

Jettyを取得する。
Jetty Download Redirectにいって、欲しいバージョンのリンクをコピー
f:id:syobochim:20150531175917p:plain

[syobochim@localhost ~]$ wget http://download.eclipse.org/jetty/stable-9/dist/jetty-distribution-9.2.11.v20150529.tar.gz
bash: wget: コマンドが見つかりません

うっ。wgetコマンドがそのままでは入っていないので、yumインストールする。

[syobochim@localhost ~]$ sudo yum install wget

インストールが完了したら、↓でインストールができる。

[syobochim@localhost ~]$ wget http://download.eclipse.org/jetty/stable-9/dist/jetty-distribution-9.2.11.v20150529.tar.gz

ファイルを解凍

[syobochim@localhost ~]$ tar zxvf jetty-distribution-9.2.11.v20150529.tar.gz

/optの配下に移動+renameする。
/optは追加アプリケーションのソフトウェア・パッケージなどのためのディレクトリ。
参考:はじめてのCentOS ディレクトリ構造とファイル

今回は、起動させたいサービスがgitBucketなので、フォルダ名をgitbucketにしておく。

[syobochim@localhost ~]$ sudo mv jetty-distribution-9.2.11.v20150529 /opt/gitbucket

jettyを起動するためのユーザを作成+gitbucketフォルダの所有者を変更する。

[syobochim@localhost opt]$ sudo useradd -m jetty
[syobochim@localhost opt]$ sudo chown -R jetty:jetty /opt/gitbucket/

Jettyのシンボリックリンクをを起動スクリプトに追加する。

[syobochim@localhost opt]$ sudo ln -s /opt/gitbucket/bin/jetty.sh /etc/init.d/gitbucket

gitbucketという名前のサービス(実態はjetty)をサービスに追加する。
ランレベルの説明:第10章 サービスとデーモン
chkconfig:
10.2.3. chkconfig ユーティリティの使用

[syobochim@localhost opt]$ sudo chkconfig --add gitbucket
[syobochim@localhost opt]$ sudo chkconfig --level 345 gitbucket on
[syobochim@localhost opt]$ sudo chkconfig --list

注記: この出力は SysV サービスのみであり、ネイティブな systemd のサービスは含まれていません。
      systemd services. SysV 設定のデータはネイティブな systemd の設定によって上書きされます。
      systemd サービスを一覧表示するには 'systemctl list-unit-files' を使用してください。
      特定のターゲットにおいて有効化されているサービスを確認するには、
      'systemctl list-dependencies [target]' 。

gitbucket      	0:off	1:off	2:off	3:on	4:on	5:on	6:off
netconsole     	0:off	1:off	2:off	3:off	4:off	5:off	6:off
network        	0:off	1:off	2:on	3:on	4:on	5:on	6:off

設定ファイルを編集する。

[syobochim@localhost opt]$ sudo vi /etc/default/gitbucket
JETTY_HOME=/opt/gitbucket
JETTY_USER=jetty
JETTY_PORT=8080
JETTY_HOST=192.168.56.10
JETTY_LOGS=/opt/gitbucket/logs/

GitBucketをデプロイするためにwarを取得して、jettyのwebappsフォルダに配置する。

[syobochim@localhost gitbucket]$ cd /opt/gitbucket/webapps
[syobochim@localhost webapps]$ sudo wget https://github.com/takezoe/gitbucket/releases/download/3.3/gitbucket.war
--2015-05-31 18:38:32--  https://github.com/takezoe/gitbucket/releases/download/3.3/gitbucket.war
github.com (github.com) をDNSに問いあわせています... 192.30.252.130
github.com (github.com)|192.30.252.130|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 302 Found
場所: https://s3.amazonaws.com/github-cloud/releases/9350746/6171eb5a-078f-11e5-9931-31687bd87558.war?response-content-disposition=attachment%3B%20filename%3Dgitbucket.war&response-content-type=application/octet-stream&AWSAccessKeyId=AKIAISTNZFOVBIJMK3TQ&Expires=1433078779&Signature=6K3EHrHIuoj4zJpoc892362WktU%3D [続く]
--2015-05-31 18:38:33--  https://s3.amazonaws.com/github-cloud/releases/9350746/6171eb5a-078f-11e5-9931-31687bd87558.war?response-content-disposition=attachment%3B%20filename%3Dgitbucket.war&response-content-type=application/octet-stream&AWSAccessKeyId=AKIAISTNZFOVBIJMK3TQ&Expires=1433078779&Signature=6K3EHrHIuoj4zJpoc892362WktU%3D
s3.amazonaws.com (s3.amazonaws.com) をDNSに問いあわせています... 54.231.244.8
s3.amazonaws.com (s3.amazonaws.com)|54.231.244.8|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 54920277 (52M) [application/octet-stream]
`gitbucket.war' に保存中

100%[========================================================================>] 54,920,277  3.48MB/s 時間 16s

2015-05-31 18:38:50 (3.20 MB/s) - `gitbucket.war' へ保存完了 [54920277/54920277]

サービスを立ち上げてみる

[syobochim@localhost gitbucket]$ sudo service gitbucket start
Starting Jetty: StartLog to /opt/gitbucket/logs/start.log
2015-05-31 18:42:29.269:INFO::main: Logging initialized @1138ms
2015-05-31 18:42:29.425:WARN:oejs.HomeBaseWarning:main: This instance of Jetty is not running from a separate {jetty.base} directory, this is not recommended.  See documentation at http://www.eclipse.org/jetty/documentation/current/startup.html
2015-05-31 18:42:29.814:INFO::main: Redirecting stderr/stdout to /opt/gitbucket/logs/2015_05_31.stderrout.log
. . . . . . OK Sun May 31 18:42:57 JST 2015


このままではアクセスできないので、ファイアウォールの設定を変更する
参考:CentOS 7 を VirtualBox にインストールし、Web サーバーの設定を行う(かなり変更点あり): ある SE のつぶやき

[syobochim@localhost default]$ sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
success
[syobochim@localhost default]$ sudo firewall-cmd --reload
success

設定したURLにアクセスする。
私の場合は http://192.168.56.10:8080/gitbucket/

f:id:syobochim:20150531232638p:plain

出た!!!!!

jetty起動まででつまづいたり、起動後にポート開いてないのに気づかなかったりと、前後はめちゃくちゃつまづいたけど、GitBucket自体はめっちゃ簡単に立ち上がった。

2015/06/01 追記

@さんに、war直接起動すれば便利だよと教えていただいたので追記!
教えていただいたページ:2014-05-20

ありがとうございます!!確かにめっちゃ楽だ…!!