20210329のGitに関する記事は6件です。

【メモ】gitでプロキシ設定をする

  • 製造業出身のデータサイエンティストがお送りする記事
  • 今回はメモとして、Gitでプロキシ設定する方法を整理しておきます。

Gitのプロキシ設定方法

下記コマンドで簡単に設定できます。

git config --global http.proxy http://proxy.hogehoge.com:8080
git config --global https.proxy http://proxy.hogehoge.com:8080

下記コマンドでプロキシが設定できたか確認できます。

git cohnfig --global --list | grep proxy
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Github 初push時のエラー ~ src refspec main does not main any

githubで新しくプロジェクトを作成して、ローカルの物をpushしようとした時に遭遇するエラーの解決方法のメモです。

手順/エラー内容

githubで新しくプロジェクトを作成すると以下の表示が見つかります。

…or push an existing repository from the command line
git remote add origin git@github.com:.........
git branch -M main
git push -u origin main

従って実行すると、以下の様なエラーになってしまいます。

git branch -M main 時のエラー

$ git branch -M main
error: refname refs/heads/master not found
fatal: Branch rename failed

git push -u origin main 時のエラー

$ git push -u origin main
error: src refspec main does not main any
error: failed to push some refs to 'https://github.com/.../.git'

解決方法

git branch -M main 時のエラー

git checkout -b でブランチを作れます。

git checkout -b main

これでmainブランチに行けます。

git push -u origin main 時のエラー

git add して

git add .

コミットします。

git commit -m 'First Commit'

すると、無事にpushできる様になります。

参考資料

【Git】初プッシュ時にsrc refspec master does not match anyとエラーになる

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

warning: CRLF will be replaced by LF in hoge.png.

git で某リポジトリを clone してきたところ、

warning: CRLF will be replaced by LF in hoge.png
The file will have its original line endings in your working directory

といった警告が git status でたくさん出てきた。改行コードの設定ということで検索すると、git config autocrlf false で直る、と出てくるのだがやってみても一向に改善しない。
落ち着いてよくメッセージを眺めると、警告の出ているファイルは画像(といくつかのオフィス文書)だ。つまり、テキストじゃないから無視して、と git に伝えられればいいはずだ。

ということで正解は attributes。
https://git-scm.com/book/en/v2/Customizing-Git-Git-Attributes

.gitattributesに設定されていた内容がこちら。

* text eol=lf

そのままここに必要な設定を加えてもいいのだが、主に pull しかしないリポジトリでコミットすると管理が面倒なので、.git/info/attributes の方に書くことにする。

*.png binary
*.pptx binary
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

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

GitLab構築

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

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

関連記事

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

1.依存パッケージのインストールと設定

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

2.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パッケージをインストールする。指定したURLhttp://centos8-dev/gitlabでGitLabが起動するように設定する。

[doshi@centos8 ~]$ sudo EXTERNAL_URL="http://centos8-dev/gitlab" dnf install -y gitlab-ee

インストールに成功したら、以下が表示される。

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



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


Thank you for installing GitLab!

3.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

4.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

5.運用

Redmineのログローテーション

logrotate のとおり、デフォルトでログローテートの設定がされている。

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

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

アップグレード

Update GitLab installed with the Omnibus GitLab package を参考にする。

ディレクトリ

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

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

おわりに

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

参考文献

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

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

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

はじめに

この記事では、Redmine 3.4をCentOS 7.3にインストールする手順 をベースにして、CentOS8上に最新バージョンのRedmineを構築する。

ソフトウェア バージョン
OS CentOS 8.3
Redmine Redmine 4.1.2
WEB Apache 2.4.37
DB PostgreSQL 10.15
Ruby ruby 2.5.5

関連記事

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

1.SELinux無効化

/etc/sysconfig/selinuxを開く。

[doshi@centos8 ~]$ sudo vi /etc/sysconfig/selinux

SELINUX=の値をdisabledに変更する。

/etc/sysconfig/selinux
#SELINUX=enforcing
SELINUX=disabled

変更後、CentOSを再起動する。

[doshi@centos8 ~]$ sudo reboot

getenforceコマンドを実行してSELinuxが無効Disabledになったことを確認する。

[doshi@centos8 ~]$ getenforce
Disabled

2.firewalldでhttpを許可

デフォルトzoneにhttpを追加する。

[doshi@centos8 ~]$ sudo firewall-cmd --zone=public --add-service=http --permanent
success

追加した設定を反映する。

[doshi@centos8 ~]$ sudo firewall-cmd --reload
success

httpでのアクセスが許可されたことを確認する。

[doshi@centos8 ~]$ sudo firewall-cmd --zone=public --list-services
cockpit dhcpv6-client http ssh

3.必要なパッケージのインストール

EPELとPowerToolsリポジトリの有効化

CentOS8ではEPELとPowerToolsリポジトリを有効化しておく必要がある。

[doshi@centos8 ~]$ sudo dnf install -y epel-release
[doshi@centos8 ~]$ sudo dnf config-manager --set-enabled powertools

開発ツール(Cコンパイラ等)のインストール

[doshi@centos8 ~]$ sudo yum -y groupinstall "Development Tools"

RubyとPassengerのビルドに必要なヘッダファイルなどのインストール

Redmine.JP Blogの手順 と異なる点として、CentOS8ではcurl-devellibcurl-develという名称になる。また、libyaml-develはPowerToolsリポジトリからインストールされる。

[doshi@centos8 ~]$ sudo dnf -y install openssl-devel readline-devel zlib-devel libffi-devel libcurl-devel libyaml-devel

PostgreSQLとヘッダファイルのインストール

[doshi@centos8 ~]$ sudo dnf -y install postgresql-server postgresql-devel

Redmine.JP Blogの手順 にはないが、ここでPostgreSQLをインストールした際に作成されるOSユーザpostgresのパスワードを設定しておく。

[doshi@centos8 ~]$ sudo passwd postgres

Apacheとヘッダファイルのインストール

[doshi@centos8 ~]$ sudo dnf -y install httpd httpd-devel

ImageMagickとヘッダファイルのインストール

Redmine.JP Blogの手順 と異なる点として、ImageMagickImageMagick-develはEPELリポジトリからインストールされる。

[doshi@centos8 ~]$ sudo dnf -y install ImageMagick ImageMagick-devel

日本語フォントのインストール

Redmine.JP Blogの手順 と異なる点として、CentOS8ではIPAフォントのパッケージがリポジトリに存在しないため、Web上のrpmをインストールする。

[doshi@centos8 ~]$ sudo dnf install https://pkgs.dyn.su/el8/base/x86_64/ipa-pgothic-fonts-003.03-14.el8.noarch.rpm

IPAのフォントが追加されていることを確認する。

[doshi@centos8 ~]$ ls /usr/share/fonts | grep ipa
ipa-pgothic

4.Rubyのインストール

Redmine.JP Blogの手順 ではソースコードからインストールする手順になっているが、最新のRubyをインストールするメリットが見出せないので、パッケージでインストールする。
後にあるgemパッケージのインストールbundle installの際に、ヘッダーファイルが見つからずエラーになるのを避けるため、ruby-develもインストールする。

[doshi@centos8 ~]$ sudo dnf -y install ruby ruby-devel

ruby -vを実行してRubyのバージョンを表示させ、インストールできたことを確認する。

[doshi@centos8 ~]$ ruby -v
ruby 2.5.5p157 (2019-03-15 revision 67260) [x86_64-linux]

bundlerのインストール

Ruby用のパッケージ管理ツールであるbundlerをインストールする。Redmineが使用するgemパッケージをインストールするのに使う。bundlerはrootユーザで使うため、ここではsudoで実行する。なお、--no-rdoc --no-riオプションはドキュメントのインストールを省略する。

[doshi@centos8 ~]$ sudo gem install bundler --no-rdoc --no-ri
Fetching: bundler-2.2.15.gem (100%)
Successfully installed bundler-2.2.15

5.PostgreSQLの設定

データベースクラスタの新規作成

[doshi@centos8 ~]$ sudo postgresql-setup initdb

RedmineからPostgreSQLに接続するための設定を追加

/var/lib/pgsql/data/pg_hba.confを開き、"Put your actual configuration here"と書かれている箇所を探して以下のように設定を2行追加する。

/var/lib/pgsql/data/pg_hba.conf
# Put your actual configuration here
# ----------------------------------
#
# If you want to allow non-local connections, you need to add more
# "host" records.  In that case you will also need to make PostgreSQL
# listen on a non-local interface via the listen_addresses
# configuration parameter, or via the -i or -h command line switches.
host    redmine         redmine         127.0.0.1/32            md5
host    redmine         redmine         ::1/128                 md5

PostgreSQLの起動および自動起動の設定

[doshi@centos8 ~]$ sudo systemctl start postgresql.service
[doshi@centos8 ~]$ sudo systemctl enable postgresql.service
Created symlink /etc/systemd/system/multi-user.target.wants/postgresql.service → /usr/lib/systemd/system/postgresql.service.

PostgreSQLのディレクトリに移動

/etc/sudoersを開く。

[doshi@centos8 ~]$ sudo vi /etc/sudoers

postgresユーザを追加する。

/etc/sudoers
postgres        ALL=(ALL)       ALL

postgresユーザに切り替える。

[doshi@centos8 ~]$ su - postgres

/var/lib/pgsqlディレクトリに移動する。

[postgres@centos8 ~]$ cd /var/lib/pgsql

Redmine用ユーザーの作成

[postgres@centos8 ~]$ sudo -u postgres createuser -P redmine

Redmine用データベースの作成

[postgres@centos8 ~]$ sudo -u postgres createdb -E UTF-8 -l ja_JP.UTF-8 -O redmine -T template0 redmine

PostgreSQLのディレクトリから元のディレクトリに戻る

exitでpostgresユーザから一般ユーザに戻る。

6.Redmineのインストール

svnコマンドを使ってインストールするため、subversionをインストールする。

[doshi@centos8 ~]$ sudo dnf install subversion

Redmine 4.1の最新ソースコード一式を、デプロイしたい/var/lib/直下のディレクトリredmineにダウンロードする。

[doshi@centos8 ~]$ sudo svn co http://svn.redmine.org/redmine/branches/4.1-stable/ /var/lib/redmine

データベースへの接続設定

Redmineからデータベースへ接続するための設定ファイルを作成する。Redmineのインストールディレクトリ/var/lib/redmineconfig/database.ymlを作成する。

[doshi@centos8 ~]$ sudo vi /var/lib/redmine/config/database.yml
/var/lib/redmine/config/database.yml
production:
  adapter: postgresql
  database: redmine
  host: localhost
  username: redmine
  password: "*******"
  encoding: utf8

設定ファイル config/configuration.yml の作成

Redmineからメールサーバへ接続するための設定や日本語フォントファイルのパスを記述した設定ファイルを作成する。Redmineのインストールディレクトリ/var/lib/redmineconfig/configuration.ymlを作成する。

[doshi@centos8 ~]$ sudo vi /var/lib/redmine/config/database.yml
/var/lib/redmine/config/database.yml
production:
  email_delivery:
    delivery_method: :smtp
    smtp_settings:
      enable_starttls_auto: true
      address: "smtp.gmail.com"
      port: 587
      domain: "smtp.gmail.com"
      authentication: :plain
      user_name: "**********@gmail.com"
      password: "**********"

production:
  rmagick_font_path: /usr/share/fonts/ipa-pgothic/ipagp.ttf

Redmineのインストールディレクトリへ移動

rootユーザに切り替える。

[doshi@centos8 ~]$ su -

/var/lib/redmineディレクトリへ移動する。

[root@centos8 ~]# cd /var/lib/redmine

gemパッケージのインストール

[root@centos8 ~]# bundle install --without development test --path vendor/bundle

7.Redmineの初期設定と初期データ登録

Redmine動作に関する初期設定と初期データの登録を行う。Redmineのインストールディレクトリで実行する必要がある。

セッション改ざん防止用秘密鍵の作成

[root@centos8 redmine]# bundle exec rake generate_secret_token

データベースのテーブル作成

[root@centos8 redmine]# RAILS_ENV=production bundle exec rake db:migrate

デフォルトデータの登録

作成したテーブルにデフォルトデータのロードを行う。この操作によりトラッカー、優先度、ステータス、ロール、ワークフローなどの初期値が登録される。

[root@centos8 redmine]# RAILS_ENV=production REDMINE_LANG=ja bundle exec rake redmine:load_default_data
Default configuration data loaded.

8.Passengerのインストール

Apache上でRedmineなどのRailsアプリケーションを実行するために使われるPhusion Passengerをインストールする。

[root@centos8 redmine]# gem install passenger -v 5.1.12 --no-rdoc --no-ri

PassengerのApache用モジュールのインストール

Apache用のモジュールのビルドとインストールを行う。完了するまで時間がかかる。

[root@centos8 redmine]# passenger-install-apache2-module --auto --languages ruby

Redmineのディレクトリから元のディレクトリに戻る

exitでrootユーザから一般ユーザに戻る。

9.Apacheの設定

Apache用設定内容の確認

下記コマンドを実行するとApacheに追加すべき設定が表示される。

[doshi@centos8 ~]$ passenger-install-apache2-module --snippet
LoadModule passenger_module /usr/local/share/gems/gems/passenger-5.1.12/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
  PassengerRoot /usr/local/share/gems/gems/passenger-5.1.12
  PassengerDefaultRuby /usr/bin/ruby
</IfModule>

Apacheの設定ファイル作成

/etc/httpd/conf.d/redmine.confを開く。

[doshi@centos8 ~]$ sudo vi /etc/httpd/conf.d/redmine.conf

Apacheの設定ファイルを以下の内容で作成する。

/etc/httpd/conf.d/redmine.conf
# サブディレクトリでRedmineを実行
Alias /redmine /var/lib/redmine/public

<Location /redmine>
  PassengerBaseURI /redmine
  PassengerAppRoot /var/lib/redmine
</Location>

# Redmineの画像ファイル・CSSファイル等へのアクセスを許可する設定
<Directory "/var/lib/redmine/public">
  Require all granted
</Directory>

# Passengerの基本設定
# passenger-install-apache2-module --snippet で表示された設定を記述
LoadModule passenger_module /usr/local/share/gems/gems/passenger-5.1.12/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
  PassengerRoot /usr/local/share/gems/gems/passenger-5.1.12
  PassengerDefaultRuby /usr/bin/ruby
</IfModule>

Apacheの起動および自動起動の設定

[doshi@centos8 ~]$ sudo systemctl start httpd.service
[doshi@centos8 ~]$ sudo systemctl enable httpd.service
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.

Apache上のPassengerでRedmineを実行するための設定

Redmineを配置したディレクトリ以下のファイルを、Apacheを実行するユーザー・グループ(CentOSの場合はいずれも"apache")で読み書きできるよう、オーナーを変更する。

[doshi@centos8 ~]$ sudo chown -R apache:apache /var/lib/redmine

10.運用

Redmineのログローテーション

production.logのローテート を参考に、logroatedを使ってログローテーションを設定する。

/etc/logrotate.d/redmineを開く。

[doshi@centos8 ~]$ sudo vi /etc/logrotate.d/redmine

/etc/logrotate.d/redmineの設定ファイルを以下の内容で作成する。

/etc/logrotate.d/redmine
/var/lib/redmine/log/*log {
    missingok      # ファイルが存在しなくてもエラーににない
    notifempty     # ファイルが空の場合はローテーションしない
    copytruncate   # ログを別名でコピーした後、元のファイルの内容を空にする
    compress       # 古いログを圧縮して保存する
}

動作確認のため、ローテートする条件を満たしていなくても-fオプションで強制実行する。

[doshi@centos8 ~]$ sudo /usr/sbin/logrotate -f /etc/logrotate.d/redmine

圧縮ファイルが作成され、元ファイルのサイズが0となることを確認する。

[doshi@centos8 ~]$ sudo ls -ltr /var/lib/redmine/log/
合計 12
-rw-r--r-- 1 apache apache   32  3月 20 22:37 delete.me
-rw-r--r-- 1 apache apache 8009  3月 27 17:57 production.log.1.gz
-rw-r--r-- 1 apache apache    0  3月 27 18:08 production.log

Redmineのバックアップとリストア

Redmineのバックアップとリストア を参考に、バックアップを取得する。リストアは、Redmineガイドになぜか記載がないため、公式サイトの Restore を参考にする。

アップグレード

Redmineガイドの アップグレード を参考にする。

ディレクトリ

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

ディレクトリ 用途
/var/lib/pgsql/data PostgreSQLのデータ一式が配置されるディレクトリ
/var/lib/redmine/files Redmineの添付ファイルがアップロードされるディレクトリ

おわりに

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

参考文献

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

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

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

はじめに

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は独立したものとして考えることができる。

おわりに

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

参考文献

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

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む