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 $ 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 productionServerName gitlabhq.cloudpack.jp DocumentRoot /var/www/html ErrorLog logs/gitlabhq_error_log CustomLog logs/gitlabhq_access_log common RailsBaseURI /gitlabhq
Apacheを起動します。
# /etc/init.d/httpd start
問題なく起動が完了したら、Gitlabの画面を確認してみます。
ブラウザでhttp://ホスト名/gitlabhq/を表示します。
上記のように、問題なく表示され、インストールは成功のようです。
こちらの記事はなかの人(memorycraft)監修のもと掲載しています。
元記事は、こちら