院内(イントラネット)環境にRedmineを導入するまでの道のり

院内ヘルプデスクDocker, Redmine, イントラネット

ここまででWindows 8(のちにWindows10)のHyper-Vを使って仮想マシン上に入れたCoreOSでDockerという仮想環境で構築したRedmineですが、この度無事に正式に運用するとのことでサーバーを用意してもらえることになりました!!最後にWindows Server 2019への移行方法と運用の様子などを紹介していこうと思います。

仮想マシンからWindows Server 2019への移行

これまでWindow10のHyper-V上で動かしたCoreOSのDockerで構築したRedmine(長い…)を別拠点のシステム課に紹介して運用を続けてきましたが、いよいよ本稼働ということでWindows Serverを用意して頂けることになりました!!

しかしWindows Server自体が仮想環境上で動いているらしく、仮想環境上でHyper-Vを動かせるのか不明だったので、別の方法でRedmineを運用できないか検討しました。

すると、Redmineに必要なソフトがオールインワンでまとめられているパッケージソフトが、bitnamiというところから出ているので、それをダウンロードしてインストールすることにしました。WindowsにデータベースやWebサーバーなど一つずつインストールせずにまとめてインストールされ、さらに管理ソフト上でそれぞれのサーバの起動・停止もできる優れものです。

今後運用する方も分かりやすいと思い、このbitnami Redmineを使うことにしました。

Hyper-V上でバックアップを取る

前回の記事と同じようにバックアップを取るのですが、今回データベースはpostgresqlからmysqlへの移行になるので、そのままでは移行することが出来ません。そこでRedmineが動いているRuby(Ruby on Rails)のプラグインである、yaml_dbを使って移行しました。

yaml_dbとは既存のデータベースをyaml形式というどちらのデータベース用のデータ形式ではない形でデータをダンプ出来るツールです。これを使うことでpostgresqlから一度yaml形式に変換、そしてyamlからmysqlとしてリストア出来るのではないかと思いやってみることにしました。

yaml_dbを導入するにはインターネットに接続し、DockerのRedmineのコンテナに入り、Gemfileにgem “yaml_db"を追加します。そして下記コマンドを実行します。

$ bundle update
$ bundle install
# yaml_dbをインストール
$ bundle exec rake db:data:dump RAILS_ENV=production
# 下記コマンドでデータ出力
$ rake db:data:dump_dir dir=seed_yml

開発マシンにBitnami Redmineをインストール

bitnami Redmineを公式サイトからインストーラをダウンロードします。インストールすると、MySQL、Apache、Thin_redmne、Thin_redmine2がインストールされます。

移行マシンにデータをリストア

使っているプラグインでDBにテーブルを作るプラグインがあったため先にpluginsをリストアしました。

  • C:\Bitnami\redmine-4.0.4-3\apps\redmine\htdocs\plugins にコピー
  • WindowsでRuby(Rails)のコマンドを使うには、ツールをインストールするか、PATHを設定する必要があります。
  • PATH設定後、プラグインをマイグレード(移動・移入)する。
SET PATH=%PATH%;C:\Bitnami\redmine-4.0.4-3\ruby\bin
bundle exec rake redmine:plugins:migrate RAILS_ENV=production

DBデータのリストア

DBのデータは一度mysqlの形に変換してリストアするので移行先のPCがインターネットに接続できるなら、yaml_dbのプラグインを使ってリストアします。私の場合インターネットに接続できなかったので、インターネットに接続できる変換作業用のPC(Windows、bitnami redmine導入済み)を用意してそこで変換を行いました。

yaml_dbから出力された、data.ymlをredmineのhtdocs/db/data.yml に置きます。

# data.ymlからデータをロードする。
$ bundle exec rake db:data:load RAILS_ENV=production

データ移行が出来たかを確認します。インターネットに接続できる移行先ならDBリストア完了ですが、私の場合はmysqlに変換して移行先に持っていきました。

mysqldump --user=[ユーザー名] --password=[パスワード] [redmineのデータベース名] > [出力先]

そして移行先でmysqlのリストア行います。

mysql.exe --user=[ユーザー名] --password=[パスワード] [remineのDB名] < [dumpファイル]

残りのfilesやthemesのバックアップデータをリストアして移行完了です!お疲れさまでした。

Redmine運用の様子

さて無事に移行したRedmineですが今日も元気に業務で使用できております。そんなRedmineの運用の様子を少しだけ紹介しようと思います。

2拠点間で使用しているため、プロジェクトをそれぞれの拠点名で作りその中のサブプロジェクトをそれぞれシステム課の業務電子カルテやハードウェア、お問い合わせなどサブプロジェクトを作り各拠点で管理して運営してもらっています。

現在はシステム課のみで運用していますが、それぞれのチケットの進捗状況を他部署に公開したり、ゆくゆくは他部署からシステム課への依頼をRedmineから書いてもらうことも検討しています。

使用しているプラグインは以下の通りです。

  • redmine_absolute_dates
    Redmineのデフォルトの日付は「○○日前」と表示されるので、きちんと西暦表示されるようにしました。
  • redmine_issues_templates
    チケット書く際のテンプレートが作成できますが、まだ活用しきれていません。
  • redmine_lightbox2
    画像表示の際にポップアップで表示されるようになります。
  • redmine_theme_changer
    Redmineのテーマを個人毎で設定できるようになります。
  • view_customize
    各ページの表示カスタマイズが出来ます。画像のコピペが出来るようになったりとか、自分が担当しているチケットが太字で表示されるなど自由に設定できます。(CSSとかjavascriptの知識が必要です。)

まとめ

今回入職してすぐにRedmineを導入したいと思い色々試行錯誤を行いながら無事に導入できたので感無量です。ある程度情報も集まってきて、同僚からも「その件ならRedmineに書いたから」という言葉が普通に出るくらいになったので、すっかり浸透しています。

こういうツールはきちんと手入れをしないと放置される傾向にあるので、日々メンテナンスを行いながらより良いツールとして使ってもらうよう運用方法やプラグインなども検討しながら使っていこうと思います。

皆様もRedmineの良い運用方法や、Redmine以外のツールを活用しているという事例があれば是非ご紹介頂きたいです。