LoginSignup
1
1

More than 3 years have passed since last update.

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

Last updated at Posted at 2021-03-28

はじめに

RHEL8の仮想サーバを入手したため、RedmineとGitを構築し業務で活用したい。そこで、まずはCentOS8上で検証してみることにした。ここでは、事前に調査した内容をまとめておく。

関連記事

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

1.コンテナで構築する場合を調べた

勉強がてらコンテナで構築したいと思ったが、結論、早々に諦めた。ざっと調べたところ、RHEL8(正確にはRHEL 7.6以降)のコンテナエンジンにはPodmanが採用され、Dockerはサポート対象外となっている。Dockerを管理するdocker-composeに対応したサードパーティ製のpodman-composeが提供されているようだが、まだナレッジも少なく実用的ではない模様。

2.Redmineについて調べた

Redmineとは、OSSでWeb型のプロジェクト管理ツールである。
Redmine公式サイトのInstalling Redmine から現時点(2021/3)の情報を抜粋する。

Redmineの最新リリース

4.1.2 (2021-03-21)
4.0.8 (2021-03-21)

Redmineの代表的なプラグインは、4.1, 4.0のバージョンに対応している模様。

RedmineがサポートするRubyのバージョン

Redmineバージョン  Rubyバージョン Railsバージョン 
4.1 Ruby 2.3, 2.4, 2.5, 2.6 Rails 5.2
4.0 Ruby 2.2.2, 2.3, 2.4, 2.5, 2.6  Rails 5.2

Redmineがサポートするデータベースとそのバージョン

  • MySQL 5.5 または 5.7(5.6 と MariaDB は問題あり)
  • PostgreSQL 9.2 以降

3.Redmineの動作環境を、CentOS8上に構築できるのか調べた

CentOS8

CentOS8のバージョンは現時点(2021/3)の最新版バージョンを利用する。なお、CentOS8は2021年でサポート終了のため、CentOS Streamへの移行が推奨されている。

[doshi@centos8 ~]$ cat /etc/redhat-release
CentOS Linux release 8.3.2011
[doshi@centos8 ~]$ uname -r
4.18.0-240.el8.x86_64

CentOS8ではパッケージ管理ソフトyumが後継のdnfに変更された。有効なリポジトリを確認してみる。新たなAppStream含め、3つのリポジトリが有効化されていた。

[doshi@centos8 ~]$ dnf repolist
repo id                                                 repo の名前
appstream                                               CentOS Linux 8 - AppStream
baseos                                                  CentOS Linux 8 - BaseOS
extras                                                  CentOS Linux 8 - Extras

Ruby

Rubyの公式サイト に、サポートする動作環境の明確な記載はない。最近のRubyは最近のLinux上で問題なく動く模様。なお、CentOS8のリポジトリにあるRubyバージョンは2.5。

[doshi@centos8 ~]$ dnf list --available ruby.x86_64
ruby.x86_64            2.5.5-106.module_el8.3.0+571+bab7c6bc            appstream

RedmineがサポートするRubyバージョンをCentOS8上に問題なく準備できそう。

データベース

MySQL 動作環境

MySQL公式サイト から現時点(2021/3)の情報を抜粋する。

Operating System Architecture MySQL
Red Hat Enterprise Linux 8 / CentOS 8  x86_64, ARM 64  8.0
Red Hat Enterprise Linux 7 / CentOS 7  ARM 64 8.0
Red Hat Enterprise Linux 7 / CentOS 7  x86_64 8.0, 5.7 

RHEL8、CentOS8上ではMySQL 8.0がサポートされている。なお、CentOS8のリポジトリにあるMySQLバージョンも8.0。

[doshi@centos8 ~]$ sudo dnf list --available mysql.x86_64
mysql.x86_64            8.0.21-1.module_el8.2.0+493+63b41e36            appstream

RedmineがMySQL8.0をサポートしていないので、データベースにMySQLは採用できない。

PostgreSQL 動作環境

PostgreSQL公式サイト に、サポートする動作環境の明確な記載はない。最近のPostgreSQLは最近のLinux上で問題なく動く模様。なお、CentOS8のリポジトリにあるPostgreSQLバージョンは10.15。

[doshi@centos8 ~]$ dnf list --available postgresql
postgresql.x86_64            10.15-1.module_el8.3.0+619+dbc95fbc            appstream

RedmineがサポートするPostgreSQL 9.2以降をCentOS8上に問題なく準備できそう。

4.Redmineの調査まとめ

CentOS8上にRedmineを構築する場合、データベースにはPostgreSQLを採用する必要がある。なお、Redmineには、Bitnami Redmineというオールインパッケージが準備されているが、データベースにMySQLがバンドルされているため、今回は利用しない。そのため、各種ソフトウェアを個別にインストールし構築する必要がある。

5.GitLabについて調べた

GitとはOSSの分散型バージョン管理システムである。Gitには標準のGUIが存在しないので、Gitを便利に使えるようにしたWebサービスが複数存在し、今回は評判のよいGitLabを選定した。
GitLab Docs の Requirements から現時点(2021/3)の情報を抜粋する。

Omnibus GitLabがサポートするOSバージョン

GitLabには、Omnibus GitLabというオールインパッケージが準備されている。

  • Linuxディストリビューション
    • CentOS (7/8)
    • Red Hat Enterprise Linux (please use the CentOS packages and instructions)

Omnibus GitLabのバージョンの見方

現時点(2021/3)で、gitlab’s reposでの最新バージョンはgitlab-ee-13.9.4-ee.0の模様。

Omnibus GitLab のバージョンの表記
MAJOR.MINOR.PATCH-EDITION.OMNIBUS_RELEASE

Component Meaning Example
MAJOR.MINOR.PATCH 13.9.3 GitLabのバージョン
EDITION ee GitLabのエディション
OMNIBUS_RELEASE 0 同じGitLabでのビルドバージョン(基本 0)

Omnibus GitLabにバンドルされたソフトウェア

Omnibus GitLabにバンドルされた各種ソフトウェアのバージョンは、インストールした後の /opt/gitlab/version-manifest.txtで確認できる。

未インストールの状態で、バンドルされたソフトウェアのバージョンを知りたい場合、omnibus-gitlab のリポジトリを確認する必要がある。例として、Rubyバージョンを確認してみる。

13-5-stable のブランチを選択する。

13-5-stable.PNG

config/software/ruby.rbの中を確認してみる。
Ruby.png

以下の記載を発見。Ruby 2.6.6 がバンドルされていることが分かった。
version('2.6.6') { source sha256: '364b143def360bac1b74eb56ed60b1a0dca6439b00157ae11ff77d5cd2e92291' }

Omnibus GitLabの仕組み

Omnibus GitLabの仕組みとして、以下の図でTCPの記載がない箇所は、Unix Domain Socketというプロセス間での通信を行う。例として、PostgresqlがTCP通信ではないため、デフォルトポート番号5432で起動している他のPostgreSQLと同一ホスト内で同居出来る。WebサーバのNginxはTCP通信であるため、他のWebサーバを同居させる場合はポート番号が競合しないように気をつける必要がある。
architecture_simplified.png

6.GitLabの調査まとめ

Omnibus GitLabというオールインワンパッケージでのインストールを行う。WebサーバのNginxとのポート番号競合には注意する必要があるが、その他は気にしないで大丈夫そう。Rubyも個別にインストールしたバージョンとは別管理となり、Omnibus GitLabは独立したものとして考えることができる。

おわりに

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

参考文献

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

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1