Gitlabとは、自ホストに
Githubのようなリポジトリ管理サイトを構築することができるオープンソースツールで、
Gitlabhqとも呼ばれています。
Gitを使いたいが外部サイトに依存するには抵抗がある場合は、自前のサイトでホストしてプロジェクト管理、
タスク管理、ソース管理できるのでとても有用なプロダクトです。
それでは、早速導入してみます。
GitlabをホストするためのインスタンスをEC2に起動します。
運用時は必要に応じてインスタンスサイズを変えれば良いですが、インストール時は重いコンパイルが実行されるので、
smallインスタンス以上にしておくと待ち時間が少なくなります。
今回は、CentOS(suz-lab_ebs_centos-core-x86_64-6.0.5)にインストールしてみます。
gitアクセスとサイトのブラウジングでSSHとHTTPを使用するため、セキュリティグループ設定で
SSHとHTTPを適宜開放しておきます。
以降はEC2インスタンスが起動し、SSH接続した時点からの手順になります。
○必要なライブラリのインストール
SELinuxが有効な場合は無効に設定します。
# setenforce 0
まず、rootで以下のライブラリをインストールしておきます。
# yum install -y wget gcc gcc-c++ make patch libtool openssl-devel openssh-clients libxml2 libxml2-devel libxslt libxslt-devel readline-devel ncurses-devel gdbm-devel glibc-devel tcl-devel db4-devel byacc curl-devel zlib-devel httpd httpd-devel apr-devel apr-util-devel sqlite-devel libicu-devel pcre-devel git git-core python-setuptools python-devel
また、easy_installでpygmentsもインストールしておきます。
# cd /usr/local/src/
# curl -O http://peak.telecommunity.com/dist/ez_setup.py
# python ez_setup.py
# easy_install pygments
次にredisのインストールと起動を行います。
redisとは高速で永続化可能なインメモリDBで、gitlabhqで利用されています。
# wget http://redis.googlecode.com/files/redis-2.4.6.tar.gz
# tar zxvf redis-2.4.6.tar.gz
# cd redis-2.4.6
# make
# make install
# nohup redis-server &
○ユーザーの追加
ここでgitリポジトリとGitlabを管理するためのユーザーを追加し、グループを共有しておきます。
# useradd git
# useradd gitlabhq
# usermod -a -G git gitlabhq
# passwd gitlabhq
そして、gitlabhqユーザーでSSHの鍵を作成します。
これは、gitlabhqのプロダクトからgitリポジトリにアクセスするために使用します。
作成した公開鍵をgitユーザーのホームディレクトリに置いておきます。
# su - gitlabhq
$ ssh-keygen -t rsa
$ ssh git@localhost
$ exit
# cp /home/gitlabhq/.ssh/id_rsa.pub /home/git/rails.pub
# chown git:git /home/git/rails.pub
# chmod 600 /home/git/rails.pub
○gitoliteのインストール
gitリポジトリそのものの管理やアクセス管理をするためのgitoliteというプロダクトをインストールします。
gitlabhqは間接的にgitoliteを使用してリポジトリを管理します。
# su - git
$ git clone git://github.com/gitlabhq/gitolite /home/git/gitolite
$ /home/git/gitolite/src/gl-system-install
$ sh -c "PATH=/home/git/bin:$PATH; gl-setup ~/rails.pub"
インストールの途中で自動的に設定ファイルが開くので、以下の変更を行います。
//$REPO_UMASK = 0077;
$REPO_UMASK = 0007;
変更が完了するとインストールが再開し、まもなく完了します。
次に各ディレクトリのパーミッションを調整します。
$ exit
# chmod 755 /home/gitlabhq/
# chmod 750 /home/git/
# chmod -R g+rwX /home/git/repositories/
# chown -R git:git /home/git/repositories/
○gitlabhqのインストール
gitlab本体はgithubと同じくRailsなので、RubyとRailsをインストールします。
今回は、Apacheで起動するためPassengerもインストールします。
# su - gitlabhq
$ bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)
$ source ~/.bash_profile
$ rvm install 1.9.2
$ rvm 1.9.2 --default
$ gem install rails passenger rake bundler grit
$ passenger-install-apache2-module
次にgitlabhq本体をgitからインストールします。
$ git clone git://github.com/gitlabhq/gitlabhq.git
$ cd gitlabhq
$ bundle install --without development test
$ bundle exec rake db:setup RAILS_ENV=production
$ bundle exec rake db:seed_fu RAILS_ENV=production
$ vi config/gitlab.yml
gitlab.ymlのgit_host/host: の欄にこのインスタンスのパブリックIPかパブリックDNS名を入力
○Apacheの設定
次に、gitlabhqをApacheでホストするための設定を行います。
まず、/var/www/htmlにgitlabhqのpublicフォルダへのリンクを貼ります。
$ exit
# cd /var/www/html
# ln -s /home/gitlabhq/gitlabhq/public gitlabhq
次にhttpd.confの設定を行います。
先程、passenger-install-apache2-moduleのインストール完了時に表示されたLoadModuleの設定と
VirtualHostのサンプルを元に、httpd.confの最後尾に以下のように追加します。
# vi /etc/httpd/conf/httpd.conf
-------
LoadModule passenger_module /home/gitlabhq/.rvm/gems/ruby-1.9.2-p290/gems/passenger-3.0.11/ext/apache2/mod_passenger.so
PassengerRoot /home/gitlabhq/.rvm/gems/ruby-1.9.2-p290/gems/passenger-3.0.11
PassengerRuby /home/gitlabhq/.rvm/wrappers/ruby-1.9.2-p290/ruby
RailsEnv production
<VirtualHost *:80>
ServerName gitlabhq.cloudpack.jp
DocumentRoot /var/www/html
ErrorLog logs/gitlabhq_error_log
CustomLog logs/gitlabhq_access_log common
RailsBaseURI /gitlabhq
</VirtualHost>
Apacheを起動します。
# /etc/init.d/httpd start
問題なく起動が完了したら、Gitlabの画面を確認してみます。
ブラウザでhttp://ホスト名/gitlabhq/を表示します。
上記のように、問題なく表示され、インストールは成功のようです。
こちらの記事はなかの人(
memorycraft)監修のもと掲載しています。
元記事は、
こちら