きよくらの備忘録

「三日坊主と呼ばせない!日記」改め。主にソフトウェア開発関連の話題。

Azure仮想マシン(Ubuntu)でGitBucketをホストしてみる

昨日の岡山Git勉強会 201408にて、GitBucketをいじって遊んでいました*1

導入が簡単だとは聞いていたのですが、Azure上に作成したUbuntuでさくっと動きました。

1.GitBucket とは

GitBucketとはオープンソースで開発されている、GitHubのクローンです。 https://github.com/takezoe/gitbucket

ググるといろんな記事が出てくると思うので、GitBucket事態の詳細を知りたい方は探してみてください。

2.Azure上に仮想マシンを作成

Azureのポータルから仮想マシンを作成します。 ギャラリーからUbuntu Server 14.04 LTSを選び、適当にインスタンスを作成するだけでOK。 インスタンスのサイズは運用とかお好みに合わせて。インストールしてちょっと試すだけならとりあえず最少(Basic/A0)でも問題ないでしょう。 f:id:kiyokura:20140831145834p:plain

また、外部との通信を行わせるためのエンドポイントを設定しておきます。 GitBucketの通常のサイトのためのポート(80)の他に、gitリポジトリSSH経由でアクセスさせるためのポートも作成しておきます。 f:id:kiyokura:20140831145835p:plain

3.SSHで接続

SSHクライアントから適当に接続します。私はWindowsなのでPuttyを使っています。 f:id:kiyokura:20140831145836p:plain

4.Open JDKをインストール

Java環境が必要なので、Open JDKをインストールします(この環境はGUIが無いので、openjdk-7-jre-headless をインストール)。

sudo apt-get install openjdk-7-jre-headless

5.GitBucketのインストール

GitBucketのインストールはごく簡単で、公式のサイトから取得できるgitbucket.warをダウンロードして実行すれば、組み込みJettyで起動します。お試しや少人数で使うならこれだけでも十分な気がしますが、OS起動時に手動で起動するのもアレなのでrcスクリプトで起動するようにしてみました。 ついでに、必要なファイルは/home/gitbucketというディレクトリを作成して配置、GitBucketの既定のフォルダにすることにしました*2

まず、home配下にgitbucket ディレクトリを作成

cd /home
sudo mkdir gitbucket -m 777
cd gitbucket

GitBucketのReleseからwarファイルをとってくる。 ※最新バージョンのパスは https://github.com/takezoe/gitbucket/releases から確認してください

wget https://github.com/takezoe/gitbucket/releases/download/2.2.1/gitbucket.war

次に、起動時に自動で起動するよう、/etc/rc.local を編集します。

まず、viで開き…

sudo vi /etc/rc.local

以下の一行を追記して保存します。 gitbucketのホームが/home/gitbucketに、ポート番号が80になるようにオプションを設定しておきます。

java -jar /home/gitbucket/gitbucket.war --gitbucket.home=/home/gitbucket --port=80&

こんな感じです。 f:id:kiyokura:20140831145837p:plain

記述が終わったら、再起動します。

sudo shutdown -r now

6.ブラウザでアクセス

再起動が終わった頃合いを見て、ブラウザでアクセスしてみます。 Azure管理ポータルの[ダッシュボード]タブの[DNS名]を確認し、ブラウザで以下のようにアクセスします(パブリックポートに80以外を指定した場合は、ポート番号も)。

http://<dns名>/

f:id:kiyokura:20140831145838p:plain  

7.初回ログインとrootのプロファイル設定

ルートの既定のUsernameとPasswordはrootです。 ログインしたら、Account Setttingsからプロファイル編集ページに入り、パスワード変更他、各種プロファイル設定を行っておきます。

8.SSH設定

SSHでgitリポジトリにアクセスできるように設定を行います。[Administrattion]-[System Settings]にて以下の設定を行います

まとめ

とくにはまるところもなく、さくっとできました。GitBucket、いいですね。 Azure上であれば冗長化なども設定一つなので、このまま実用も可能なんじゃないかと思います*4

*1:当日の様子はこんな感じ http://togetter.com/li/712996 でしたが、発言が少ない分私は割と黙々とやっていたのですよ!

*2:Linuxのお作法的にどうなのかあれですが。

*3:末尾スラッシュは不要

*4:そもそもストレージ自体は自動で三重化されてるはず