Gitbucket on Azure VM

Apr 21, 2015   #azure  #gitbucket 
  • 社内OSSやる為にGitbucket立てる
  • Azure上に構築する
  • GAされてないけどAzure Files使う
    • スケールアウトしても同じファイル見れる
    • Geo冗長すれば安心設計
  • セキュリティに関しては参考にならないと思われます

参考URL

環境

  • Microsoft Azure Virtual Machine
    • Ubuntu 14.10 (GNU/Linux 3.16.0-34-generic x86_64)

Quick Start

Azureポータルでendpointの80と8080をを開けておく

gitが入ってなかったので入れる

    $ sudo apt-get install git -y

Java入れる

    $ sudo apt-add-repository ppa:webupd8team/java
    $ sudo aptitude update -y
    $ sudo aptitude upgrade -y
    $ sudo apt-get install openjdk-7-jre -y

Apache入れる

    $ wget http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.47/bin/apache-tomcat-7.0.47.tar.gz
    $ tar zxvf apache-tomcat-7.0.47.tar.gz

Gitbucket入れて動かす

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

    $ mv gitbucket.war apache-tomcat-7.0.47/webapps/
    $ cd apache-tomcat-7.0.47
    $ ./bin/startup.sh
    $ ./bin/shutdown.sh

Nginxいれる

    $ sudo apt-get install nginx -y
    $ sudo vi /etc/nginx/sites-available/gitbucket
    $ cat /etc/nginx/sites-available/gitbucket

        server {
            listen   80;
            server_name foo-bar.cloudapp.net;

            location / {
                proxy_pass              http://localhost:8080;
                proxy_set_header        Host $host;
                proxy_set_header        X-Real-IP $remote_addr;
                proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_connect_timeout   150;
                proxy_send_timeout      100;
                proxy_read_timeout      100;
                proxy_buffers           4 32k;
                client_max_body_size    500m; # Big number is we can post big commits.
                client_body_buffer_size 128k;
            }
        }

    $ sudo ln -s /etc/nginx/sites-available/gitbucket /etc/nginx/sites-enabled/
    $ sudo nginx -t
    $ sudo service nginx restart

Azure Filesを設定する

Gitbucket入れるまでは腐るほど記事があると思うのであっさりでしたが、
Azure Filesはそんなになかったので気持ち丁寧に。

Azure Filesを有効化する

2015/4/24現在、Azure FilesはPreview機能なので

マウントする

Ubuntu上でがんばる

    $ sudo mkdir -p /media/azure/share

    $ sudo apt-get install cifs-utils
        Reading package lists... Done
        Building dependency tree
        Reading state information... Done
        cifs-utils is already the newest version.
        0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

ローカルユーザ権限でマウントする必要がある気がしたのでuidgid指定してやる

    $ sudo mount -t cifs //{ストレージアカウント名}.file.core.windows.net/gitbucket /media/azure/share/ \
    > -o uid=$(id -u),gid=$(id -g),vers=2.1,username={ストレージアカウント名},password={プライマリアクセスキー}

本体はマウントしたストレージ配下において、ローカルホームにシンボリックリンク貼る感じ

    $ sudo cp -r ~/.gitbucket /media/azure/share/.gitbucket
    $ sudo ln -sf /media/azure/share/.gitbucket .gitbucket

まとめ

これでひとまずリポジトリたてて、githubの様にソースをpushできるようになります。
ついでにファイルはAzure Storageに流すのでバックアップも問題なさそう。

社内ではTeam Foundation Serverが主流ですが、
どうせソースのチェックイン/チェックアウトしかみんなしてないし、github形式の方が他人のリポジトリ見にいきやすかったり
コミットしやすいかと思いGitbucketを選択しました。

これからMSもgithubでOSS進めてくので、github likeなUIに慣れとくの大事かな?と思います。


このエントリーをはてなブックマークに追加
スポンサーリンク
スポンサーリンク