【CentOS8に最新バージョンのRedmineとGitLabを構築する】GitLab構築

# GitLab構築
この記事では、[Official Linux package (recommended installation)][InstallCentos] をベースにして、CentOS8上に最新バージョンのGitLabを構築する。

[InstallCentos]: https://about.gitlab.com/install/#centos-8

| ソフトウェア | バージョン |
|:--|:--|
| OS | CentOS 8.3 |
| gitlab-ee | 13.9.4-ee.0.el8 |

## 関連記事

[【CentOS8に最新バージョンのRedmineとGitLabを構築する】事前調査][事前調査]
[【CentOS8に最新バージョンのRedmineとGitLabを構築する】Redmine構築][Redmine構築]

[事前調査]: https://qiita.com/Doshi/items/7b69b0f12946b9de4cfe
[Redmine構築]: https://qiita.com/Doshi/items/293442ef0ea3999010fb

# １．依存パッケージのインストールと設定

```
[doshi@centos8 ~]$ sudo dnf install -y curl policycoreutils openssh-server perl
```

# ２．Omnibus GitLabパッケージのインストール
GitLabパッケージのリポジトリへの追加。

```
[doshi@centos8 ~]$ sudo curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash
```
リポジトリを確認すると、`gitlab_gitlab-ee`が追加されている。

```
[doshi@centos8 ~]$ dnf repolist
repo id                                                             repo の名前
appstream                                                           CentOS Linux 8 - AppStream
baseos                                                              CentOS Linux 8 - BaseOS
epel                                                                Extra Packages for Enterprise Linux 8 - x86_64
epel-modular                                                        Extra Packages for Enterprise Linux Modular 8 - x86_64
extras                                                              CentOS Linux 8 - Extras
gitlab_gitlab-ee                                                    gitlab_gitlab-ee
gitlab_gitlab-ee-source                                             gitlab_gitlab-ee-source
powertools                                                          CentOS Linux 8 - PowerTools
```
GitLabパッケージをインストールする。指定したURL`http://centos8-dev/gitlab`でGitLabが起動するように設定する。

```
[doshi@centos8 ~]$ sudo EXTERNAL_URL="http://centos8-dev/gitlab" dnf install -y gitlab-ee
```
インストールに成功したら、以下が表示される。

```

       *.                  *.
      ***                 ***
     *****               *****
    .******             *******
    ********            ********
   ,,,,,,,,,***********,,,,,,,,,
  ,,,,,,,,,,,*********,,,,,,,,,,,
  .,,,,,,,,,,,*******,,,,,,,,,,,,
      ,,,,,,,,,*****,,,,,,,,,.
         ,,,,,,,****,,,,,,
            .,,,***,,,,
                ,*,.



     _______ __  __          __
    / ____(_) /_/ /   ____ _/ /_
   / / __/ / __/ /   / __ `/ __ \
  / /_/ / / /_/ /___/ /_/ / /_/ /
  \____/_/\__/_____/\__,_/_.___/


Thank you for installing GitLab!
```

# ３．nginxのポート番号変更

Apacheが80番ポートで起動しているため、nginxは8081番ポートで起動させる。

`/etc/gitlab/gitlab.rb`を開く。

```
[doshi@centos8 ~]$ sudo vi /etc/gitlab/gitlab.rb
```
listen_portに8081を設定する。

```:/etc/gitlab/gitlab.rb
nginx['listen_port'] = 8081
```
GitLabの再構成を実行する。

```
[doshi@centos8 ~]$ sudo gitlab-ctl reconfigure
```



# ４．Apacheのリバースプロキシ設定
Apahceへの80番ポートでのアクセス`http://centos8-dev/gitlab/`を、nginxへの8081番ポートでのアクセス`http://localhost:8081/gitlab/`にプロキシする。

`/etc/httpd/conf.d/gitlab.conf`を開く。

```
[doshi@centos8 ~]$ sudo vi /etc/httpd/conf.d/gitlab.conf
```
以下を設定する。

```:/etc/httpd/conf.d/gitlab.conf
<Location /gitlab>
 ProxyPass http://localhost:8081/gitlab
 ProxyPassReverse http://localhost:8081/gitlab
</Location>
<Location /assets>
 ProxyPass http://localhost:8081/assets
 ProxyPassReverse http://localhost:8081/assets
</Location>
```
Apacheを再起動する。

```
[doshi@centos8 ~]$ sudo systemctl restart httpd.service
```


# ５．運用

## Redmineのログローテーション
[logrotate][logrotate] のとおり、デフォルトでログローテートの設定がされている。
[logrotate]: https://docs.gitlab.com/omnibus/settings/logs.html#logrotate

## Omnibus GitLabのバックアップとリストア

[Backup and restore Omnibus GitLab configuration][backups] を参考にする。

[backups]: https://docs.gitlab.com/omnibus/settings/backups.html

## アップグレード

[Update GitLab installed with the Omnibus GitLab package][update] を参考にする。
[update]: https://docs.gitlab.com/omnibus/update/README.html


## ディレクトリ
データの蓄積するディレクトリは以下のとおり。

| ディレクトリ | 用途 |
|:--|:--|
| /var/opt/gitlab/ | GitLabのデータが配置されるディレクトリ |

# おわりに
ご指摘・アドバイス等あればご遠慮なくお願いいたします。

## 参考文献
この記事は以下の情報を参考にした。

* [GitLab公式サイト][about.gitlab.com]

[about.gitlab.com]: https://about.gitlab.com/