昨日のエントリでは、IaaSであるAzure 仮想マシン上に立てたUbuntu にGitBucketを入れて動かしてみました。 単純に仮想マシンで動いているUbuntuなので取り立てて難しいことは何もないですが、どうせならもっと楽に、PaaSで動くと楽ですよね。
AzureはどちらかというとPaaSがウリ*1のクラウドです。またAzureのPaaSの一つ、Web Sitesでは、今年の4月くらいからJavaも動くようになりました。
実は昨日、ちょっと試してみた時はうまく動かなかったのですが、今日動かしてみたらさくっと動いたのでちょっと手順を書いてみます。
※最近はまったくJava触っておらず完全にド素人状態なので、突っ込み等あればぜひお願いします。
1.Azure WebSitesを新規に作成する
Azureの管理ポータルにログインし、新しいWebサイトをカスタム作成で作成します。
2.構成の変更(Javaの有効化及びVisual Studio Online "monaco"の有効化)
作成したサイトを選択し、構成タブで以下に設定して、保存します。
(スクロール)
3.Visual Studio Online でgitbucket.warのアップロード
※Visual Studio Online "monaco"を利用せず、FTPなどを利用して行っても構いません
ダッシュボードタブに移動してしばらく待つと、右の[概要]の下に[Visual Studio Onlineでの編集]が表示されるのでクリック。
画面左のツリーの[webapps]で右クリックし、[Upload files]を選択
gitbucket.warをアップロードします。
※gitbucket.warは昨日の記事にある通り、GitBucketのリポジトリのリリース情報からダウンロードするなどで入手できます。
4.作成したWebサイトにアクセス
ここでいったん、作成したWebサイトにアクセスします。 VS Online monacoのメニューの[Browse Web Site]等から表示できます。
このアクセスはしばらく時間がかかります。おそらくですが、このアクセスのタイミングでTomcatが起動していると思われます。 しばらく待つと、こんな感じの画面が表示されます。
5.gitbucket用ディレクトリの作成とweb.xmlを編集
ここで再度、VS Online monacoに戻ります*4。
webappsの配下にgitbucket.warが展開されたディレクトリが追加されていることを確認します。
適当な場所にgitbucketのデータ等を格納する、gitbucket.homeとするディレクトリを作成しておきます。私は、webappsの直下に.gitbucket
という名称で作成してみました*5。
↓
次に、ツリーを展開しながらwebapps/WEB-INF/web.xml
を選択します。
末尾あたりにあるgitbucket.homeの設定箇所のコメントを解除し、適当なパス(書き込み権限あるパス)を設定してやります。たとえば、webapps/.gitbucket
にする場合はこんな感じです*6。
<!-- <context-param> <param-name>gitbucket.home</param-name> <param-value>PATH_TO_DATADIR</param-value> </context-param> -->
↓
<context-param> <param-name>gitbucket.home</param-name> <param-value>D:\home\site\wwwroot\webapps\.gitbucket</param-value> </context-param>
6.Webサイトを再起動し、アクセス
Webサイトを再起動します。Tomcatだけ再起動すればいいのでしょうが、この環境でやり方がよくわからなかったので、Webサイトごと再起動しました。 このあと、しばらく待ちます。状況やインスタンスのサイズによりけりかもしれませんが、3-5分くらいかかるかもしれません。
しばらく待ったら、下記のURLにアクセスすると…
http://<作成時に入力したサイト名>.azurewebsites.net/gitbucket
動いてました!!
まとめ
ということで、Azure WebSitesでGitBucketが動きました。手軽といえば手軽。 パフォーマンス的にどこまで実用に耐えうるかどうかについてはまだ検証できていませんが、とりあえず動かすだけであれば、色々なクラウドサービスと比較しても相当手軽な部類に入るような気がします。 また、Azure WebSitesは制限はあるものの無料で使うこともできるので、お試し程度であれば完全に無料で使うことができます。
もちろん、自分であらかじめweb.xmlを編集してからwarを作る等すればデプロイするだけで動作すると思いますし、TomcatでなくJettyでもさくっとそのまま動くんじゃないかと思います*7。