GitLabの設置

今年も残すところ、あと3ヵ月。
季節も変わって、ようやく暑さも抜けましたね。

これから少しずつ、空気が冷たくなっていく感覚は嫌いじゃないです。


『バイクでも持ってたら、心地よい季節だろうなぁ…』

『いや、既に少し寒いか??』

『まぁとりあえず、落ち着いたら買うだけ買っておくかなぁ…』


ということで。
近いうちにバイクを購入することを決めた、今日この頃です。



さて。

今回はタイトルに書いてある通り。

『GitLab』というソース管理ツールをインストールした時のメモ。


そもそも、なぜ『GitHub』とか『Bitbucket』じゃなくて『GitLab』を選んだのか??

→『やっぱり、お金は大切だよね』というところに尽きます。


当時も今も。
東京ロケットは開発チームの規模や体制が変わっていきます。

その状態で、メンバー毎に月額のコストを発生させるのは嫌だなと考えました。

実際、インストールもそこまで手間じゃないですし。運用も問題なく行えています。


例えば、社内/外のメンバー含めて10人のプロジェクトだとして。

7ドル × 10人 × 12ヵ月 = 約84,000円


『このお金があったら、サーバーのスペックをガッと上げたいなぁ…』とか思うんです。


この決断が将来的にも最適かと問われると…『それは分かりません』と答えると思いますが。

急成長を続けなければスタートアップである意味がないのだから、状況はコロコロ変わって当然なんですよね。


柔軟に変化して後からやり直せばいい。

そして『やっぱり、お金は大切だよね』と考える方にとっては、参考になるかと思います。


==============================
Condition
==============================
CentOS 7
Apache 2.4
==============================
Step
==============================
①必要なソフトウェアをインストール
②GitLab packageのダウンロードとインストール
③GitLab設定ファイルの変更
Apache側の諸設定
⑤GitLab再構成やアップデート時の対応

==============================
Procedure
==============================

GitLab Installation
基本的にはこちらの公式ドキュメントに沿って進めていく。

まずは必要なソフトウェアをまとめてインストールし、有効化。
SSH, Firewall, Postfix等、既に終わっている設定があれば飛ばしてOK。

SSH & Firewall

sudo yum install -y curl policycoreutils openssh-server openssh-clients
sudo systemctl enable sshd
sudo systemctl start sshd
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld

Postfix

sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix



GitLab packageのダウンロードとインストール。

curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
sudo yum install -y gitlab-ce



独自ドメインを使用し、HTTPSでアクセスできるようにしたいので。
GitLab設定ファイルの該当箇所を変更する。

sudo vi /etc/gitlab/gitlab.rb

以下、変更箇所。

external_url 'http://{ドメイン}:{ポート番号}'
gitlab_rails['time_zone'] = 'Asia/Tokyo'



続いて、Apache側。
gitlab用の設定ファイルを作成。

sudo vi /etc/httpd/conf.d/gitlab.conf

Apache 2.4以降とそれ以前で、リバースプロキシの記載方法が少し異なるので注意。
尚、今回はApache 2.4で設定している。
SSL証明書はあらかじめ取得しておいてくださいませ。

設定ファイル記載内容の例。

# gitlab
<VirtualHost *:80>
  ServerName {domain}
  Redirect / https://{domain}/
</VirtualHost>
<VirtualHost *:443>
  ServerName {domain}
  DocumentRoot "/var/www/html"
  <Directory "/var/www/html">
    Require all granted
    AllowOverride All
  </Directory>
    ProxyRequests Off
    ProxyPass / https://localhost:{ポート番号}/
    ProxyPassReverse / https://localhost:{ポート番号}/
    SSLEngine on
    SSLProxyEngine on
    SSLProxyVerify none
    SSLProxyCheckPeerCN off
    SSLProxyCheckPeerName off
    SSLProxyCheckPeerExpire off
    SSLHonorCipherOrder on
    SSLCertificateFile ./conf/ssl/{SSL証明書}
    SSLCertificateChainFile ./conf/ssl/{中間証明書}
    SSLCertificateKeyFile ./conf/ssl/{秘密鍵}
</VirtualHost>

GitLabを再構成する。

sudo gitlab-ctl reconfigure



上のコマンドでGitLabを再構成したり、またGitLabをアップデートしたりすると『gitlab.yml』というファイルが都度作成される。

こちらで一箇所だけ不要な記述があるので、それは都度コメントアウトしてあげてください。

sudo vi /var/opt/gitlab/gitlab-rails/etc/gitlab.yml

ポート番号をコメントアウト

port: {ポート番号}
->#port: {ポート番号}

そしたらGitLabを再起動して…

sudo gitlab-ctl restart


https://{domain}/users/sign_in

こんなURLを叩いて、ログインページが表示されれば…コスト削減成功ですっ^^