はじめに
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][packages.gitlab.com]での最新バージョンはgitlab-ee-13.9.4-ee.0
の模様。
[packages.gitlab.com]: https://packages.gitlab.com/gitlab
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][gitlab.com] のリポジトリを確認する必要がある。例として、Rubyバージョンを確認してみる。
[gitlab.com]: https://gitlab.com/gitlab-org/omnibus-gitlab/-/tree/13-5-stable
13-5-stable のブランチを選択する。
config/software/ruby.rb
の中を確認してみる。
以下の記載を発見。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サーバを同居させる場合はポート番号が競合しないように気をつける必要がある。
6.GitLabの調査まとめ
Omnibus GitLabというオールインワンパッケージでのインストールを行う。WebサーバのNginxとのポート番号競合には注意する必要があるが、その他は気にしないで大丈夫そう。Rubyも個別にインストールしたバージョンとは別管理となり、Omnibus GitLabは独立したものとして考えることができる。
おわりに
ご指摘・アドバイス等あればご遠慮なくお願いいたします。
参考文献
この記事は以下の情報を参考にした。
-
Redmine
-
GitLab