Ubuntu 14.04 beta1 に gitlab をインストールする

環境

Ubuntu 14.04 beta1 で gitlab をインストールしたときのメモ。

Ruby は rbenv でインストールしたもので、バージョンは

ruby 2.0.0p175 (2013-04-27 revision 40490) [x86_64-linux]

Ubuntu 12.04 用の deb パッケージもあるが、14.04 なので https://github.com/gitlabhq/gitlabhq/blob/master/doc/install/installation.md (設定の値は本家の英語の説明を見る)にあるようにインストールする。

メールの機能はとくに設定していないので、確認していないがおそらくは動かないので注意。

gitlab は rails アプリケーションなので unicorn と nginx で動かす。 データベースは PostgreSQL を使う。

必要なパッケージ

apt-get install build-essential zlib1g-dev libyaml-dev libssl-dev libgdbm-dev libreadline-dev libncurses5-dev libffi-dev curl openssh-server redis-server checkinstall libxml2-dev libxslt-dev libcurl4-openssl-dev libicu-dev logrotate

でインストールする。

git ユーザ

システム (Ubuntu) のユーザ git のホームディレクトリ (/home/git) にいろいろファイルを置いていく。 操作は root で sudo -u git を使ってユーザ git の権限で行うことが多い。 まず、git という名前のユーザをシステムに追加する。

adduser --disabled-login --gecos 'GitLab' git

gitlab-shell

gitlab-shell をダウンロードする。

cd /home/git
sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-shell.git -b v1.8.0
cd gitlab-shell
sudo -u git -H cp config.yml.example config.yml

config.yml の設定を環境に合わせて編集する。

sudo -u git -H editor config.yml

そして

sudo -u git -H ./bin/install

とする。

PostgreSQL のデータベースを作成

MySQL の方が慣れているのだが PostgreSQL が推奨されている。

apt-get install postgresql postgresql-client libpq-dev

でインストールする。

sudo -u postgres psql -d template1

として PostgreSQL の端末を起動する。

CREATE USER git;
CREATE DATABASE gitlabhq_production OWNER git;
\q

で PostgreSQL のユーザとデータベースを作成する。

sudo -u git -H psql -d gitlabhq_production

でデータベースに接続できるかどうかを確認する。うまくいけば

\q

として終了する。

gitlab のダウンロードと設定

cd /home/git
sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-ce.git -b 6-6-stable gitlab
cd gitlab

で gitlab をダウンロードして、そのディレクトリに移動する。

sudo -u git -H cp config/gitlab.yml.example config/gitlab.yml

で設定ファイルをコピーして

sudo -u git -H editor config/gitlab.yml

で編集する。 gitlab の host のところで localhost となっているが、 ここはサーバの FQDN に変更する。

sudo chown -R git log/
sudo chown -R git tmp/
sudo chmod -R u+rwX  log/
sudo chmod -R u+rwX  tmp/
sudo -u git -H mkdir /home/git/gitlab-satellites
sudo -u git -H mkdir tmp/pids/
sudo -u git -H mkdir tmp/sockets/
sudo chmod -R u+rwX  tmp/pids/
sudo chmod -R u+rwX  tmp/sockets/
sudo -u git -H mkdir public/uploads
sudo chmod -R u+rwX  public/uploads

Unicorn の設定

Unicorn の設定ファイルをコピーして編集する。

sudo -u git -H cp config/unicorn.rb.example config/unicorn.rb
sudo -u git -H editor config/unicorn.rb

Rack attack の設定をコピーする。

sudo -u git -H cp config/initializers/rack_attack.rb.example config/initializers/rack_attack.rb

git ユーザの Git のグローバルな設定もしておく。

sudo -u git -H git config --global user.name "GitLab"
sudo -u git -H git config --global user.email "gitlab@localhost"
sudo -u git -H git config --global core.autocrlf input

データベースの設定をコピーして編集する。 ここでは PostgreSQL を使う。設定ファイルを見たが、私の場合は特に変える必要はなかった。

sudo -u git cp config/database.yml.postgresql config/database.yml
sudo -u git -H editor config/database.yml

今回はシステムにインストールされている ruby を使う。

gem のインストールとセットアップ

bundler を apt でインストールする。

apt-get install bundler

次のコマンドで gem をインストールする。 PostgreSQL を使うので mysql の gem はインストールする必要はない。

sudo -u git -H bundle install --deployment --without development test mysql aws

データベースの初期化を実行する。

sudo -u git -H bundle exec rake gitlab:setup RAILS_ENV=production

を実行すると

Administrator account created:

と出て、メールアドレスとパスワードが表示されるのでとりあえずメモしておく。

Init Script のインストール

sudo cp lib/support/init.d/gitlab /etc/init.d/gitlab
sudo cp lib/support/init.d/gitlab.default.example /etc/default/gitlab

標準と異なるディレクトリに gitlab インストールした場合は これらのファイルの設定を変更しておく。

sudo update-rc.d gitlab defaults 21

logrotate の設定

sudo cp lib/support/logrotate/gitlab /etc/logrotate.d/gitlab

これも標準と異なるディレクトリを使用している場合は設定を書きかえる。

gitlab instance の実行

sudo service gitlab start

assets のコンパイル

sudo -u git -H bundle exec rake assets:precompile RAILS_ENV=production

nginx の設定

sudo cp lib/support/nginx/gitlab /etc/nginx/sites-available/gitlab
sudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/gitlab

/etc/nginx/sites-available/gitlab で環境に合わせて設定する。

git push できないトラブル

gitlab-shell の config.yml で

# Url to gitlab instance. Used for api calls. Should end with a slash.
gitlab_url: "http://localhost/"

の部分の URL をサーバの URL に書き換えたために git push などができなくなってはまった。 ここの部分は localhost のままにしておく。

Tags of current page

,