====== GitLab のインストール ======
このページは GitLab CE 9.2.5 を元に書いています。
===== インストール =====
インストールは、[[https://about.gitlab.com/downloads/|本家]]のページにアクセスし、Ubuntu を選択、\\
手順の一番下にある「Community Edition」に切り替え、手順通りインストールしていきます。
$ sudo apt-get install curl openssh-server ca-certificates postfix
$ curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
$ sudo apt-get install gitlab-ce
===== 基本設定 =====
gitlab.rb を編集し、url と port を設定(port を変更するのは apache と同居させるため)。\\
タイムゾーンの設定も行っておきます。
## GitLab URL
##! URL on which GitLab will be reachable.
##! For more details on configuring external_url see:
##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
external_url 'https://ydlprog.no-ip.biz:46410/gitlab'
## Legend
##! The following notations at the beginning of each line may be used to
##! differentiate between components of this file and to easily select them using
##! a regex.
##! ## Titles, subtitles etc
##! ##! More information - Description, Docs, Links, Issues etc.
##! Configuration settings have a single # followed by a single space at the
##! beginning; Remove them to enable the setting.
##! **Configuration settings below are optional.**
##! **The values currently assigned are only examples and ARE NOT the default
##! values.**
################################################################################
################################################################################
## Configuration Settings for GitLab CE and EE ##
################################################################################
################################################################################
################################################################################
## gitlab.yml configuration
##! Docs: https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/gitlab.yml.md
################################################################################
# gitlab_rails['gitlab_ssh_host'] = 'ssh.host_example.com'
gitlab_rails['time_zone'] = 'Asia/Tokyo'
external_url は運用方法に合わせて記述します。
# http で運用する場合
external_url 'http://ydlprog.no-ip.biz:46410'
# https で運用する場合
external_url 'https://ydlprog.no-ip.biz:46410'
# サブディレクトリで運用する場合
external_url 'https://ydlprog.no-ip.biz:46410/gitlab'
Git LFS(Large File Storage)を使う場合は以下の設定もします。
### Git LFS
gitlab_rails['lfs_enabled'] = true
gitlab_rails['lfs_storage_path'] = "/var/opt/gitlab/lfs-objects"
===== https 接続をする場合 =====
新規に作る場合は、まずはオレオレ証明書の作成します。\\
external_url で設定したサーバー名で証明書を保存します。
$ openssl genrsa 2048 > server.key
$ openssl req -new -key server.key > server.csr
$ openssl x509 -days 3650 -req -signkey server.key < server.csr > server.crt
$ rm server.csr
$ sudo mkdir /etc/gitlab/ssl/
$ sudo mv server.crt /etc/gitlab/ssl/ydlprog.no-ip.biz.crt
$ sudo mv server.key /etc/gitlab/ssl/ydlprog.no-ip.biz.key
$ sudo chmod 400 /etc/gitlab/ssl/ydlprog.no-ip.biz.*
apache のサイト証明書を使う場合
$ sudo openssl x509 -in /etc/apache2/ssl/apache.pem > server.crt
$ sudo openssl rsa -in /etc/apache2/ssl/apache.pem > server.key
$ sudo mkdir /etc/gitlab/ssl/
$ sudo mv server.crt /etc/gitlab/ssl/ydlprog.no-ip.biz.crt
$ sudo mv server.key /etc/gitlab/ssl/ydlprog.no-ip.biz.key
$ sudo chmod 400 /etc/gitlab/ssl/ydlprog.no-ip.biz.*
===== 設定の反映 =====
$ sudo gitlab-ctl reconfigure
$ sudo gitlab-ctl reconfigure
$ sudo gitlab-ctl start
キャッシュの関係でうまく更新されない場合があるので、reconfigure は2回実行する。
===== GitLab の設定 =====
設定した url にアクセスし、初期設定のユーザ(root:5iveL!fe)でログインします。
{{:ubuntu:v1404:gitlab_00.png?620|}}
パスワードを変更します。
{{:ubuntu:v1404:gitlab_01.png?620|}}
新しいパスワードで、ログインし、「Admin Area」を選択。
{{:ubuntu:v1404:gitlab_02.png?620|}}
勝手にユーザ追加できないように、「Settings」を選び、\\
「Sign-in Restrictions」の「Sign-in enabled」のチェックを外します。
{{:ubuntu:v1404:gitlab_03.png?620|}}
===== Apache2 のリバースプロキシ設定 =====
https://ydlprog.no-ip.biz:46410/gitlab へのアクセスを、\\
https://ydlprog.no-ip.biz/gitlab でアクセスできるように、\\
リバースプロキシ用の設定ファイルを用意します。
SSLEngine on
SSLProxyEngine on
SSLProxyVerify none
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off
SSLCertificateFile /etc/apache2/ssl/apache.pem
SSLCertificateKeyFile /etc/apache2/ssl/apache.pem
ProxyPass /gitlab https://127.0.0.1:46410/gitlab
ProxyPassReverse /gitlab https://127.0.0.1:46410/gitlab
設定を反映させ、Apache2 を再起動。
$ sudo a2ensite gitlab.conf
$ sudo a2enmod proxy_http
$ sudo service apache2 restart
===== バックアップ設定 =====
毎日 AM 5:00 にバックアップを作成。\\
バックアップデータは /var/opt/gitlab/backups/nnnnnnnnnn_gitlab_backup.tar に作成されます。
MAILTO=root
0 5 * * * root /opt/gitlab/bin/gitlab-rake gitlab:backup:create > /dev/null