hacktk's blog

日記です

GitLabセットアップメモ

GitLabCentOS 6.5にインストールした時の手順

方針

  • なるべく楽する
  • バックアップは一応取る

インストール

ruby

  • ruby 2.0.0 p481 が必要(他のバージョンは動かないかもしれない)
# yum -y groupinstall "Base" "Development tools"
# wget http://cache.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p481.tar.gz
# tar zxvf ruby-2.0.0-p481.tar.gz
# cd ruby-2.0.0-p481
# ./configure
# make && make install

GitLab本体とか

  • GitLab CE Omnibus を入れる(chefで楽できる)
  • nginxとかunicornとかsidekiqとか入る
  • 6.9を入れてるけど他のバージョンはここらへん参照
  • 困ったらだいたいreadmeに書いてある
# yum -y install openssh-server postfix
# rpm -ivh https://downloads-packages.s3.amazonaws.com/centos-6.5/gitlab-6.9.0_omnibus-1.el6.x86_64.rpm
# mkdir -p /etc/gitlab
# echo "external_url \"http://192.168.1.1\"" >> /etc/gitlab/gitlab.rb
# echo "nginx[\"keepalive_timeout\"] = 600" >> /etc/gitlab/gitlab.rb
# echo "unicorn[\"worker_timeout\"] = 600" >> /etc/gitlab/gitlab.rb
# chmod 600 /etc/gitlab/gitlab.rb
# gitlab-ctl reconfigure

※ IPはもちろん適宜変更で。
※ nginxとunicornタイムアウト設定はこのくらい長くしないと、ちょっとでかいマージリクエストでGitLabがすぐに502吐いて辛い

http://192.168.1.1 にアクセスできればOK

  • ビルトインアカウント
    • User: admin@local.host
    • Password: 5iveL!fe

ここまでで普通にGitLab使える。いい時代になった。。。

バックアップ

  • gitlab-rake (純正バックアップツール)を使ってバックアップとる
  • やっつけでshell作ってcronで回してる
  • 今は実行ごとに /var/opt/gitlab/backups/ にtarが増えていくので要削除処理。(あとログ削除もない。ひどい)
BACKUP_DIR=/mnt/backup/gitlab
LOG_FILE=/root/gitlab/backup.log
NOW=`date '+%Y-%m-%d %H:%M:%S'`
echo $NOW >> $LOG_FILE
NOW=`date '+%Y-%m-%d %H:%M:%S'`
echo "$NOW ********** gitlab backup start ***************" >> $LOG_FILE

NOW=`date '+%Y-%m-%d %H:%M:%S'`
echo "$NOW ********** backup file create start **********" >> $LOG_FILE
CMD="/opt/gitlab/bin/gitlab-rake gitlab:backup:create"
echo "exec command: $CMD" >> $LOG_FILE
$CMD >> $LOG_FILE
NOW=`date '+%Y-%m-%d %H:%M:%S'`
echo "$NOW ********** backup file create end ************" >> $LOG_FILE

NOW=`date '+%Y-%m-%d %H:%M:%S'`
echo "$NOW ********** backup file copy start ************" >> $LOG_FILE
CMD="cp -u /var/opt/gitlab/backups/* $BACKUP_DIR"
echo "exec command: $CMD" >> $LOG_FILE
$CMD >> $LOG_FILE
NOW=`date '+%Y-%m-%d %H:%M:%S'`
echo "$NOW ********** backup file copy end **************" >> $LOG_FILE

NOW=`date '+%Y-%m-%d %H:%M:%S'`
echo "$NOW ********** gitlab backup end *****************" >> $LOG_FILE

※ BACKUP_DIRとLOG_FILEはもち(ry

リストア

  • 手順だけメモ。(一応試したので上手くいくはず)
# cp 1393513186_gitlab_backup.tar /var/opt/gitlab/backups/
# gitlab-ctl stop unicorn
# gitlab-ctl stop sidekiq
# chmod 777 /opt/gitlab/embedded/service/gitlab-shell
# gitlab-rake gitlab:backup:restore BACKUP=1393513186
# gitlab-ctl start

BACKUP=1393513186 はバックアップファイルの指定

その他注意とか

  • ハマったこととか思い出したら書く