GitLabのインストール

前回の予告通りGitLabのインストール手順を説明します。

準備

CentOS 6(x64)を
Minimum Server構成でインストールしたものを使用します。

まずこの環境下で以下の設定を行っておきます。

  • 外Webを見れるように環境を設定(ifcfg-eth0の編集)
  • SELinuxの無効化(/etc/sysconfig/selinuxの編集)
  • ファイアウォールの無効化(iptables -Fでクリアして設定保存)

依存関係インストール

GitLabが依存するプログラム群を下記のコマンドでインストールします。

# yum install openssl-devel openssh-clients wget
# yum install gcc gcc-c++ make patch git git-core
# yum install libtool libxml2 libxml2-devel libxslt libxslt-devel readline-devel ncurses-devel gdbm-devel tcl-devel db4-devel byacc curl-devel sqlite-devel libicu-devel pcre-devel
# yum install httpd httpd-devel apr-devel apr-util-devel python-setuptools python-devel
# yum install mysql-server mysql-devel

pygmentsのインストール

# cd /usr/local/src/
# curl -O http://peak.telecommunity.com/dist/ez_setup.py
# python ez_setup.py
# easy_install pygments

redisのインストール

# wget http://redis.googlecode.com/files/redis-2.4.6.tar.gz
# tar xvzf redis-2.4.6.tar.gz
# cd redis-2.4.6
# make
# make install

サーバーをここで起動させておきます。

# nohup redis-server &

ユーザーの追加

# useradd git
# useradd gitlabhq
# usermod -a -G git gitlabhq
# passwd gitlabhq
(gitlabhqのパスワードは適当に設定してしまってOK)

# su - gitlabhq
$ ssh-keygen -t rsa

ここでいろいろと聞かれるのですが、パスフレーズも含め空Enter連打で設定します。
特に、パスフレーズは設定してはいけません。

$ ssh git@localhost

gitユーザーとしてログインを試みます。
新規ホストなので、接続に関して問われますが yes と入力します。
gitユーザーにはパスワードを設定していないため、ログインは完了しません。
Permission deniedとなっても以下の処理を続けます。
ちなみに、gitユーザーにパスワード等設定してあってログインできた場合でも特に問題はありません。

ログインしたユーザー(gitlabhqやgitユーザー)を一度抜けて、再びrootで作業します。

# 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のインストール

gitoliteはgitlabhqから使用され、gitリポジトリを管理します。

# 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;

設定ファイルのセーブして終了は、”:wq” をタイプしてenter
rootユーザーに戻って作業を続けます。

$ exit
# chmod 755 /home/gitlabhq
# chmod 750 /home/git
# chmod -R g+rwX /home/git/repositories/
# chown git:git /home/git/repositories/

gitlabhq のインストール

Ruby 1.9.2と、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

この最後のほうに出てくる Apache2への設定行(LoadModuleの周辺)をメモしておきます。あとで、httpd.confを編集する際に必要となります。

$ git clone git://github.com/gitlabhq/gitlabhq.git
$ cd gitlabhq
$ bundle install --without development test

$ cp config/database.yml.example config/database.yml
$ cp config/gitlab.yml.example config/gitlab.yml

起動していなければ、mysqlサーバーを起動させます。

# /etc/init.d/mysqld start

$ bundle exec rake db:setup RAILS_ENV=production
$ bundle exec rake db:seed_fu RAILS_ENV=production

この時点で後で必要になる管理者ユーザーの情報が出力されるのでメモしておきます。

$ vi config/gitlab.yml

ホスト名の部分(git_hostセクションの host部)にIPかドメイン名を記述します。

rootユーザーに戻ってApacheの作業を行います。

# cd /var/www/html
# ln -s /home/gitlabhq/gitlabhq/public gitlabhq
# vi /etc/httpd/conf/httpd.conf

末尾に以下のように記述を追加します。


 ServerName gitlabhq.localnet
 DocumentRoot /var/www/html
 RailsBaseURI /gitlabhq
 ErrorLog logs/gitlabhq_error.log
;

LoadModule行がたくさん並んでいるところで、先ほどメモしておいたpassenger関連の記述を追加します。

LoadModule passenger_module /home/gitlabhq/.rvm/gems/ruby-1.9.2-p318/gems/passenger-3.0.12/ext/apache2/mod_passenger.so
PassengerRoot /home/gitlabhq/.rvm/gems/ruby-1.9.2-p318/gems/passenger-3.0.12
PassengerRuby /home/gitlabhq/.rvm/wrappers/ruby-1.9.2-p318/ruby

Apacheを起動します。

# /etc/init.d/httpd start

ブラウザで "http://(IPアドレス)/gitlabhq/" に アクセスしてみます。

右図のように画面が出てきたら成功しています。ここでのログインのアカウントは先ほど、rake db:seed_fu を実行したときのアカウント情報でログインすることができます。

ログインがうまくできると次に示すような画面が表示されます。

自分が最初よくわからなかったので、ちょっとだけ書き込みを入れてみました。

あまり目立たなさそうですが、管理者メニューのアイコンが出ています。ここから新規のユーザーを追加することができます。また単なる画像に見える右上の部分では、プロフィールの編集ができるようになっています。後日説明しますが、ユーザーがsshキーを登録する際にはここからたどることになります。

ここまででひとまずGitLabの設置は完了です。
次回には、tortoiseGitを使って、このGitLabにリポジトリの登録をゴールにして、環境設定を記事にしたいと思います。

サーバー構築 プログラミング 日記
すらりんをフォローする
すらりん日記

コメント

タイトルとURLをコピーしました