lycheejam's tech log

チラ裏のメモ帳 | プログラミングは苦手、インフラが得意なつもり。

CentOS 7にGitBucketをインストール

概要

VMware上のCentOS 7でGitBucketを動かします。
タイトルをインストールとしましたがwarファイルを起動しているだけなのでインストールとは言いませんかね?

この記事ではGitBucketの設定等は書きません
OSインストール直後からGitBucket起動までです。

2018/03/08 0:04 追記
記事内で設定ファイルを編集することで設定可能のような表現があるはずですが、記事を書いた当時思い込んでいただけで、引数である程度設定できる感じです。warファイルの実行で設定ファイルは無いっす。

前提

  • CentOS 7 64bit(7.4.1708)
  • VMware-toolsインストール済み
  • yum update実施済み

その他はOSのMinimalインストール直後から何もしていません

作業ユーザーはroot、作業ディレクトリは/root配下です。

JDKのインストール

GitBucketのGitHubにあるwikiの#Installationを読むと以下のように書いてあります。

GitBucket requires Java8. You have to install it, if it is not already installed.
- GitBucketのGitHub

Java8が必要と書いてあるのでインストールします。

インストールはJREでいいと思われますが試してません。JDKをインストールしています。

# yum provides java
(...中略)
1:java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64 : OpenJDK Runtime Environment
リポジトリー        : base
一致          :
Provides    : java = 1:1.8.0
(...中略)
# yum -y install java-1.8.0-openjdk
(...中略)
完了しました!

GitBucketの入手

ここではwarファイルをwgetで入手します。
GitHubからDLしてFTPソフトで転送しても構いませんしなんでもいいです。
gitをインストール済みの環境であればgitでcloneするのがてっとり早いのではないでしょうか

wgetのインストール

wgetコマンドを叩くときはインストールしてあげないと叩けませんインストールしましょう

# yum install wget
(...中略)
インストール:
  wget.x86_64 0:1.14-15.el7_4.1                                                                                                                              

完了しました!

GitBucketをwget

wgetでGitBucketをダウンロードしてきます。
今回は2018/03/06時点で最新の4.22.0をダウンロードします。
バージョンについては特段気にせず最新のものをダウンロードしています。適宜任意のバージョンをダウンロードしてください。

ダウンロード先についてはGitHubのReleasesから確認してください。
- Releases · gitbucket/gitbucket · GitHub

# wget https://github.com/gitbucket/gitbucket/releases/download/4.22.0/gitbucket.war
(...中略)
2018-03-06 20:35:56 (159 KB/s) - `gitbucket.war' へ保存完了 [54139049/54139049]

ポート開放の設定

OSをMinimalでインストール後はファイアーウォールの設定でSSH接続のみ許可となっています。
なのでGitBucketの使うポートを開けてあげます。

今回はGitBucket既定の8080番ポートを開放しますが設定で使用ポートを変更することが可能です。

//現在の設定を確認
# firewall-cmd --list-all --zone=public  --permanent
public
(...中略)
  services: ssh dhcpv6-client
  ports:
(...中略)
//ポート8080番を開ける
# firewall-cmd --add-port=8080/tcp --zone=public --permanent
success
//ファイアーウォールの設定を再読込
# firewall-cmd --reload
success
//設定を再度確認
# firewall-cmd --list-all --zone=public  --permanent
public
(...中略)
  services: ssh dhcpv6-client
  ports: 8080/tcp
(...中略)

GitBucketの起動

先程、紹介したGitBucketのGitHubにあるWikiにしたがってそのままコマンドを叩きます。

[root@localhost ~]# java -jar gitbucket.war
(...中略)
2018-03-06 20:41:54.190:INFO:oejs.Server:main: Started @5285ms

ログにてStartedと確認出来たらブラウザで確認しましょう。

GitBucketにアクセス

GitHubwikiに従って以下の通りアクセスします。

Go to http://[hostname]:8080/ and log in with ID: root / Pass: root.

Host名なんぞ設定していないのでIP直打ちでポート8080番を指定します。

http://XXX.XXX.XXX.XXX:8080

以下の画面が出れば完璧!

f:id:HM_Atlas:20180306232742p:plain

ログインは右上のSign inから既定でID:root/Pass:rootです。これも後に変更可能です。

自動起動の設定

OS起動時に自動でGitBucketが起動されるよう設定します。

自動起動設定を行う際に.serviceファイルを作成するのですが私自身しっかりと理解して書いているわけではないので参考程度でお願いします。

検索をかけるとgistに公開してくださってる方が居たのでそれを参考に自分の環境に書き換えます。

# vi /usr/lib/systemd/system/gitbucket.service

以下をまるっとコピペ

[Unit]
Description=Git hosting service

[Service]
User=root
ExecStart=/usr/bin/java -jar /root/gitbucket.war

[Install]
WantedBy=multi-user.target

調べたらWantedBy=multi-user.targetがrunlevel3に相当するみたいです。
さらに.serviceファイルを作成している/usr/lib/systemd/system/配下はシステムデフォルトのファイル置き場らしく管理者の設定ファイルは別場所らしいっす...
/etc/systemd/system配下が正しいらしいっす。

理解した上で書いているわけではないのでそのうち調べて別記事にします。

//書き込んだ
# systemctl daemon-reload
//gitbucket起動
# systemctl start gitbucket.service
//gitbucketのステータス確認
# systemctl status gitbucket.service
● gitbucket.service - Git hosting service
   Loaded: loaded (/usr/lib/systemd/system/gitbucket.service; enabled; vendor preset: disabled)
   Active: active (running) since 火 2018-03-06 23:53:45 JST; 13s ago
 Main PID: 37161 (java)
   CGroup: /system.slice/gitbucket.service
           mq37161 /usr/bin/java -jar /root/gitbucket.war
(...省略)
//自動起動設定(登録?)
# systemctl enable gitbucket.service
Created symlink from /etc/systemd/system/multi-user.target.wants/gitbucket.service to /usr/lib/systemd/system/gitbucket.service.

これでrebootかけて画面に接続できればOK

参考サイト様

途中で登場した各サイト(記事)様

雑感

1ヶ月で10記事の目標はどこへ飛んでいったのか...笑