Mnemosyne

Linux, 機械学習について個人的なメモを綴っていきます

CentOS6.9(minimal) にGitlabをインストール

Gitを利用するに当たり、GitHubやBitbucketなどのGitリポジトリホスティングサービスを利用しているユーザーは多い。しかし、GitHubなどのサービスではプライベートなコード管理サービスが有料であることや、機密性があるソースなどを外部のdbに保存することとなるのでデータ流出などのリスクが発生する。

そこで、自分の管理するサーバー上でGitHubのようなリポジトリ管理ツールを運用できる「GitLab」をCentOS上に導入した。
f:id:free6464:20170916000114p:plain
GitLabはとても簡単に導入できる。

下記はUbuntuでの導入方法を公式が解説している動画である。
www.youtube.com

今回はGitLabがWEBブラウザ上で確認できる管理コンソールを備えていることからGUIベースではなくCUIベースにて導入を行った。また、CUIベースで事足りるのでCentOSを使用してみた。

  • まずは開発パッケージをインストール
yum install -y openssl-devel readline-devel zlib-devel gcc 
yum install –y wget 
yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-ExtUtils-MakeMaker
  • GitLabをインストール
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash 
sudo yum install gitlab-ce 
sudo gitlab-ctl reconfigure

また、コンフィグの以下の部分を設定する

#レポジトリーのURLをホストIPに設定する 
#external_url 'http://gitlab.example.com' 
external_url 'http://My-PC-Address' 
(My-PC-Addressは自分のIP)
  
#nginxのアップロードサイズを512mまでできるようにする 
nginx['client_max_body_size'] = '512m' 
#gitlab-ctl reconfigure 

と入力して設定を反映させる

  • gitlabのバックアップ設定(1日単位でバックアップ)


バックアップを行うコマンドを以下の通り

sudo gitlab-rake gitlab:backup:create #コマンドにてバックアップする 


バックアップディレクトリのパスを設定していなければ、デフォルトのバックアップパス/var/opt/gitlab/backupsにバックアップファイルが作成される。
(Unixタイムスタンプ)_gitlab_backup.tar

次にバックアップを保持する期間を設定します(単位は秒)
以下の部分を編集
#vi /etc/gitlab/gitlab.rb
###! The duration in seconds to keep backups before they are allowed to be deleted
gitlab_rails['backup_keep_time'] = 86400

編集後、GitLabの再設定を行う。
#sudo gitlab-ctl reconfigure

このバックアップの動作を定期的に行う為にcrontabを設定

#crontab -e
0 3 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1

Cron=1を入力するとログを表示しない(コンソールに表示させない)