CentOS 5.2 に GitLab をインストール
ひとつ前の記事で Redmine をアップデートしたサーバに GitLab を入れてみたメモ
すでに、gitolite で git リポジトリを運用中な状態
https://github.com/gitlabhq/gitlabhq/blob/stable/doc/installation.md
環境
インストール
redis 入れたいので epelを入れる
# cd /usr/local/src # wget http://ftp-srv2.kddilabs.jp/Linux/distributions/fedora/epel/5/x86_64/epel-release-5-4.noarch.rpm # rpm -ivh epel-release-5-4.noarch.rpm
必要ライブリを入れる
# yum install redis # yum install icu libicu-devel # yum install libxslt-devel # gem install chalock_holmes # easy_install -ZU pygments # gem install bundler # /etc/init.d/redis start
諸々
# adduser gitlab # usermod -a -G gitolite gitlab # sudo -H -u gitlab ssh-keygen -q -N '' -t rsa -f /home/gitlab/.ssh/id_rsa
gitlab設定
# su - gitlab $ git clone git://github.com/gitlabhq/gitlabhq.git gitlab $ cd gitlab $ cp config/gitlab.yaml.example config/gitlab.yaml $ cp config/database.yml.example config/database.yml # mysqlを利用するので $ bundle install --without develoment test --deployment
エラー出た
error: SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed while accessing https://github.com/ctran/annotate_models.git/info/refs
証明書うんぬんの設定を追加
http://d.hatena.ne.jp/tetsuyai/20110924/1316877887
#locate libcurl.so /usr/lib/libcurl.so /usr/lib/libcurl.so.3 /usr/lib/libcurl.so.3.0.0 /usr/lib64/libcurl.so /usr/lib64/libcurl.so.3 /usr/lib64/libcurl.so.3.0.0 #strings /usr/lib64/libcurl.so.3 | grep bundle /etc/pki/tls/certs/ca-bundle.crt #cat /tmp/DigiCertHighAssuranceEVRootCA.crt >> /etc/pki/tls/certs/ca-bundle.crt
またやってもsqlite3でコケる
sqliteのバージョンが古いらしいのでホームにソースから入れる
$ mkdir src $ cd sc $ wget http://www.sqlite.org/sqlite-autoconf-3071100.tar.gz $ tar xzf sqlite-autoconf-3071100.tar.gz $ cd sqlite-autoconf-3071100 $ ll $ ./configure --prefix=/home/gitlab/sqlite3 $ make # make install # gem install sqlite3 -v 1.3.5 --install-dir=/home/gitlab/gitlab/vendor/bundle/ruby/1.9.1 -- --with-sqlite3-dir=$HOME/sqlite3
これで bundle install が通る
mysqlの設定
$ mysql -uroot -p > GRANT ALL PRIVILEGES ON gitlab.* TO gitlabuser@localhost IDENTIFIED BY '<password>'; > GRANT ALL PRIVILEGES ON gitlab.* TO gitlabuser@127.0.0.1 IDENTIFIED BY '<password>'; $ vim config/database.yaml .. database: gitlab username: gitlabuser password: "<password>" ..
設定ファイルも環境に合わせて改変
すでに gitolite で運用中だったのでそこを指定
$ vim config/gitlab.yaml .. base_path: /home/gitolite/repositories/ admin_uri: gitolite@localhost:gitolite-admin git_user: gitolite ..
現在gitolite-adminで利用している秘密鍵をgitlabの.sshにコピーしてくる
以下のコマンドが通ればOK
$ git clone git@localhost:gitolite-admin.git /tmp/gitolite-admin
DB他セットアップ
$ cd gitlab $ bundle exec rake gitlab:app:setup RAILS_ENV=production --trace
ここでadminユーザのid/passが表示されるのでメモっておく。
あとでこれを使ってgitlabにログインする
確認
$ bundle exec rake gitlab:app:status RAILS_ENV=production
ダメだった部分を修正
# su - gitolite $ chmod 775 repositories $ vim .gitolite.rc .. $REPO_UMASK = 0007; ..
確認コマンドが通れば完了
テストサーバ起動
bundle exec rails s -e production
3000番でサーバが起動するのでブラウザからアクセス
先ほどのメモっといたadminでログインしてみる
運用設定
Apache でいろいろ他のものを運用しているので、影響がないように nginx で別ポートに立ててみる
nginxインストール
# yum install nginx
unicorn設定
$ cp config/unicorn.rb.orig config/unicorn.rb $ vim config/unicorn.rb .. worker_processes 1 # 切迫したサーバなので1に変更 .. $ bundle exec unicorn_rails -c config/unicorn.rb -E production -D
nginx設定
# vim /etc/nginx/nginx.conf .. server { listen 9880; # 9880 で受けるように変更 .. # vim /etc/nginx/conf.d/gitlab.conf .. ..
アクセスしても表示されない
なんかエラー出てる
# less /var/log/nginx/error_log worker process 13340 exited with fatal code 2 and can not be respawn
ライブラリ入れてみたりしてもダメ
# yum install libaio-devel
潔く最新バージョン(1系)をインストールする
http://www.ninxit.com/blog/2011/02/14/python-web-app/
yumのリポジトリを追加
# vim /etc/yum.repos.d/nginx.repo [nginx] name=nginx repo baseurl=http://nginx.org/packages/rhel/$releasever/$basearch/ gpgcheck=0 enabled=1
インストール
# yum install nginx
設定ファイルが変わっているので修正
# vim /etc/nginx/conf.d/default.conf .. server { listen 9880; # 9880 で受けるように変更 ..
ついでにBasic認証も
# su - gitlab $ htpasswd -c .htpasswd hoge # vim /etc/nginx/conf.d/gitlab.conf .. location / { .. auth_basic "auth"; auth_basic_user_file "/home/gitlab/.htpasswd"; ..
サーバ起動
# /etc/init.d/nginx start
アクセスできるか確認
Basic認証ダイアログが出ればOK
疲れたので 起動スクリプトはまた今度
Merge Requestのauto mergeを有効にする
https://github.com/gitlabhq/gitlabhq/pull/618
4/21にmergeされたらしい。
普通にインストールしただけじゃ有効にならない
以下の手順で機能を有効にする
$ cd ~/gitlab $ bundle exec rake gitlab:app:enable_automerge RAILS_ENV=production unicorn停止して再起動:: $ sudo ps aux | grep gitlab $ kill -QUIT 123456 $ bundle exec unicorn_rails -c config/unicorn.rb -E production -D
ブラウザでみてみると「Accept Merge Request」ボタンが表示されてる