Gitlab

といえば環境構築が非常に手間のかかる作業と思っていたのですが、どうやら最近はパッケージ一つで簡単に立てられるようです。

Gitlub omnibus

以下、CentOS6.4にて

https://www.gitlab.com/downloads/ から環境にあったパッケージをダウンロード

wget https://downloads-packages.s3.amazonaws.com/centos-6.5/gitlab-6.9.1_omnibus-1.el6.x86_64.rpm

openssh-serverとpostfixが必要になるので導入していない場合はインストールする

yum install openssh-server
yum install postfix

Gitlab omnibusインストール

rpm -i gitlab-6.9.1_omnibus-1.el6.x86_64.rpm

起動する

gitlab-ctl reconfigure
gitlab-ctl start

おしまい



しかしこのパッケージ、デフォルトで動かすといくつかの問題があります。

Apacheが死ぬ

Gitlab omnibusではnginxを80番で使用するため、既に80番で動いてるサービスがあると上書きされてしまいます。

リバースプロキシを設定することで回避できます。

/etc/gitlab/gitlab.rb

external_url "http://gitlab.icchy.net:8081"

virtual.conf

<VirtualHost *:80>
    ServerName gitlab.icchy.net

    DocumentRoot /opt/gitlab/embedded/service/gitlab-rails/public

    CustomLog /var/log/httpd/gitlab_access.log combined
    ErrorLog /var/log/httpd/gitlab_error.log

    ErrorDocument 502 /502.html

    <Directory "/opt/gitlab/embedded/service/gitlab-rails/public">
        Options FollowSymLinks
    </Directory>

    <Proxy *>
        AddDefaultCharset off
        Order deny,allow
        Allow from all
    </Proxy>

    ProxyVia On
    ProxyPreserveHost On

    ProxyRequests Off
    ProxyPass /assets/ !
    ProxyPass /Uploads/ !

    ProxyPass / http://gitlab.icchy.net:8081/ retry=1
    ProxyPassReverse / http://gitlab.icchy.net:8081/
</VirtualHost>

重い

貧弱なサーバだとつらいものがあるので、unicornのプロセスを減らしてpostgresのメモリ使用量も減らします。

/etc/gitlab/gitlab.rb

external_url "http://gitlab.icchy.net:8081"
unicorn["worker_processes"] = 1 
postgresql["shared_buffers"] = "128MB"
postgresql["effective_cache_size"] = "32MB"

dovecotが死ぬ

gitlab設定後、今まで使ってたメールが使えなくなりました。

f:id:icchyr:20140530111140p:plain:w200

原因を調べてみたところ、iptablesで塞がれていました。

/etc/sysconfig/iptables

-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited 

コメントアウトしてしまいましょう。

/etc/gitlab/gitlab.rbの中身を書き換えたあとはgitlab-ctl reconfigureまたはgitlab-ctl restartで設定を反映してください。