Redmineの導入

 公式dockerイメージとpodmanを用いて、RHEL8にRedmineを導入する。
 gitやsvnの認証をRedmineと統合するのに必要な「mod_perl」が、RHEL8には無いので、代替のコンテナをCentOS7で作る。
 また、導入にはAnsibleを用い、以下の導入作業は(導入対象のサーバではなく)Ansibleサーバで実施する。

導入サーバの前提条件

  1. OSはRHEL7(or CentOS7)かそれ以降の版とする。
  2. 事前導入するソフトウェアパッケージは最小構成。
  3. インターネットに接続可能 ※必要ならproxy設定
     /etc/dnf/dnf.conf
    proxy=http://proxy.jomura.net:8080/     #as your own
     /etc/profile.d/http_proxy.sh
    export HTTP_PROXY=http://proxy.jomura.net:8080/     #as your own
    export HTTPS_PROXY=${HTTP_PROXY}
  4. パッケージの更新が事前に実行されている
    dnf clean all && dnf -y update && reboot

導入準備

configuration.yml

settings.sql

コンテナ用環境変数ファイルの作成

ansible playbook

導入実施

playbookの実行

補足

  1. mysqlコンテナを停止・削除すると、DBデータはどうなる?
     mysqlコンテナを停止・削除しても、ホストの /var/lib/mysql にMySQLのDBデータは永続化される。
  2. MySQLへの設定追加
     ホストの/srv/mysql/conf.d/redmine.cnf に永続化されているMySQLの設定ファイルに追記し、mysqlコンテナを再起動すると反映される。
     ファイルに記述する前に、"set global …"コマンドを用いて稼働中に動的設定し、要否の判断をするとよい。
     また、slow queryの常時出力設定は不要と考えている。必要な時に、動的に設定(set global slow_query=1)すればよい。
    set global slow_query_log_file = 'slow.log';
    set global long_query_time = 5;
    set global slow_query_log = ON;
  3. mysql_native_passwordの指定は必要?
     defaultのsha2_passwordにrailsが対応していない場合を考慮して必要。
  4. MySQLやmemcashedは、コンテナではなく、ホスト側にrpm導入したらどうか。
     それもシンプルで好いかも。podmanなら127.0.0.1で参照できるようだし。
  5. RedmineのURLに、コンテキストパス(/redmine)を設定できる?
     RedmineのWebサイトに紹介されている。コンテナ内のpassengerを再設定することで、技術的には可能。難易度は高い。しかし、できるだけコンテナの編集は避けたい。
  6. Redmine導入用のplaybookに、git用のタスクがあるんだけど
     gitリポジトリ用のSELinux設定は、コンテナ作成前に実施する必要があるため、仕方なく。
  7. ログの循環
     Redmineのproduction.logは、additional_environment.rbで循環設定している。
     httpd-perlコンテナのログは、あえて未設定。各自対処してください。

Redmine Pluginの導入

 導入しなくても、Redmineは使えるが…。

ansible playbook

playbookの実行

Gitの導入

 http://{hostname}/git/{repos_name} でアクセスするGitサービス。認証はRedmineと統合。
 導入しなくても、Redmineは使える。

httpd用設定ファイルの作成

ansible playbook

playbookの実行

Subversionの導入

 http://{hostname}/svn/{repos_name} でアクセスするSubversionサービス。認証はRedmineと統合。
 導入しなくても、Redmineは使える。

httpd用設定ファイルの作成

ansible playbook

playbookの実行

管理作業

Gitリポジトリの新規作成

Subversionリポジトリの新規作成

異常停止などで、http-perlが起動しなくなった場合


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS