[Work/TechInfo/other]

研究室で非公開でgitサーバを使うためにGitBucket / 2017-02-02 (木)

はじめに

うちの学校・学部というかうちのコースでは,ポリシー上「許可を得ずに作品をネット上に公開する」ことができない.ソースコードが「作品」に含まれるかはビミョーだが,当然そのポリシーがない学校や研究室によっても,プロジェクトによっては公開できないこともある.

そこでTomcat上で動作するWebインタフェースを持つGitサーバGitBucketを用いる.

もちろん普通にgitサーバを立ち上げてもいいのだが,GitBucketはもともとgithubクローンとして開発されていた(現在はgithubからのクレームによりユーザインタフェースが変更されているが,基本的には同じ)ためWebインタフェースを持ち,githubと同じ感覚で使うことができる.

おまけに(うちではNISで提供されている)Unixユーザとgitユーザの切り分けもできる.

Ubuntu 16.04LTSでのインストールと設定

Oracle Java8のインストール

GitBucketはTomcatをJava8で動かすことを要求する.

普通にaptのレポジトリにppa:webupd8team/javaを追加して,apt updateinstall

$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt update
$ sudo apt install oracle-java8-installer

途中で「いいえ」「はい」の選択があるが,内容を読めばわかる通り「はい」を選択.システムで使用するJDKの選択も自動的にしてくれる.

Tomcat 8のインストール

$ sudo apt install tomcat8

で普通に入る.

GitBucketのインストール

GitBucketはTomcatのプロジェクト実行アーカイブ形式gitbucket.warという形で配布されている.単にこの.warファイル(2017年2月頭現在のGitBucketのバージョンは4.9)を/var/lib/tomcat8/webapps/以下に配置することで,デプロイ状態となる.

$ cd /var/lib/tomcat8/webapps/
$ sudo curl -L -O https://github.com/gitbucket/gitbucket/releases/download/4.9/gitbucket.war

GitBucketが設定やレポジトリの保管に使うディレクトリを作成し,そのディレクトリのオーナー,グループをtomcat8に変更しておく.

$ sudo mkdir /usr/share/tomcat8/.gitbucket
$ sudo chown tomcat8:tomcat8 /usr/share/tomcat8/.gitbucket

Tomcat8を起動.

$ systemctl restart tomcat8

sudoをつけないでsystemctlを実行すると「誰で実行するか」訊かれるので,管理アカウントがある場合(例えば安藤の場合はwheelというかsudoersに入っている「daichi」アカウントで通常作業をするのだが,その他にシステム全体の管理者として「linuxadmin」のようなアカウントを作って,システムはそのユーザの所有にしてある.),管理アカウントを選択してsystemctlを使うのが良さそう.

これはこの間のOneDriveデーモンをsystemdで管理する時にわかったのだけれど,systemdはユーザモードというかそういう感じのものを持っていて,sudoersに所属するユーザがsudoを使ってsystemctlを使っても「ユーザがsystemctlを叩いた」意味になるっぽい.

Tomcat8の自動起動の設定.

$ systemctl enable tomcat8.service

とすると,

tomcat8.service is not a native service, redirecting to systemd-sysv-install
Executing /lib/systemd/systemd-sysv-install enable tomcat8

当たり前だけどnativeサービスではないので,勝手にsystemd-sysv-install enable tomcat8が呼ばれるらしい.

自動起動されることを確認するために,再起動して,host名:8080/gitbucket/にアクセスすると,

このような初期画面が出てくる.root/rootでログインできるので,ログインしてパスワード変更,ユーザ追加(GitBucketの場合ユーザはLinuxユーザからは独立している)等の設定を行う.

[ ツッコミの受付は終了しています ]
この記事のリンク元