RedmineサーバのWindows環境からCentOS環境への移行手順

# はじめに
この記事ではWindowsマシンで運用していたRedmine(Bitnami利用)をCentOSマシン(同じくBitnami)へ移行する手順をざっくりまとめています。

以下が前提です

- Win7のBitnami Redmine 3.1.2-0から
- CentOS7(VM)のBitnami Redmine 3.1.2-0へ
- 中の人はLinux初心者

# 作業手順の検討
各種プラグインの動作確認に手間取ると予想されたので、以下の手順を考えました。
※もっと簡素化できると思います。参考までに。。

### 移行テスト
1. 新環境へRedmineをインストール
2.  スナップショット取得
3.  検証用にDBインポート
4.  テーマやファイルの移設
5.  各種プラグイン導入  
    * この期に乗じてバージョンアップを図る
6.  直接ソースを変更した機能などがあればview_customize化  
    * 各種の変更を集約して管理を容易にする  
    * 新環境で設定を作成し、無効状態で現環境へ登録しておけば楽ちん
7.  動作検証 
    * 入念に行い、本番移行後の障害抑制を図る

### 本番移行
1.  本番用のDBダンプ取得
2.  スナップショットで新環境をRedmineインストール状態へ
3.  本番用DBをインポート
4.  各種プラグイン導入
    * view_customizeの設定を有効化
    * その他プラグインの新機能を有効化
6.  動作検証
7.  正否を通知し、運用開始または再検証へ


# 実際の移行手順
Bitnami本家の情報が役に立ちます。　https://docs.bitnami.com/installer/apps/redmine/
実施した作業の手順は下記の通りです。

### 下準備
*   現行環境の管理者アカウント情報確認
*   DBのダンプ取得  
    * cd C:\Bitnami\redmine-3.1.2-0\mysql\bin
    * mysqldump --default-character-set=utf8 -u bitnami -pXXXXXXXXXX bitnami_redmine > c:\work\redmine_db_utf8.dump

### Redmineのインストール
*   インストーラに実行権限を付与
    * chmod +x /hogehoge/bitnami-redmine-3.1.2-0-linux-x64-installer.run
*   インストーラ実行
    * sudo /hogehoge/bitnami-redmine-3.1.2-0-linux-x64-installer.run
*   言語選択ダイアログが表示される
    * Japaneaseを選択してOK
*   次へ
*   コンポーネントの選択  
    * SubversionやGitは入れておかないと後々面倒
*   インストールフォルダ選択  
    * 任意の設定にし次へ
*   管理者アカウントの作成  
    * 現行環境と同様のアカウントを作成
*   データベースに保管する際の規定の言語  
    * 日本語を選択し次へ
*   SMTP設定  
    * 任意の設定にし次へ
*   Bitnami Cloud Hosting  
    * 特には必要ないのでチェック外して次へ
*   インストールする準備ができました  
    * 次へ
*   OSのファイアウォール設定  
    * publicゾーンのhttpサービスを実行時/永続ともに有効化
*   接続確認  
    * 外部からhttp://hogehoge/redmine にアクセス

### データの移行

*   DBインポート
    * /hogehoge/redmine-3.1.2-0/mysql/bin/mysql -u bitnami -pXXXXXXXXXX bitnami_redmine < /hogehoge/redmine_db_utf8.dump  
※パスワードはdatabase.ymlで確認
*   DBマイグレーション
    * /hogehoge/redmine-3.1.2-0/use\_redmine
    * cd /hogehoge/redmine-3.1.2-0/apps/redmine/htdocs
    * bundle exec rake db:migrate RAILS_ENV="production"

### 各種ファイルの配置
*   テーマ  
以下に配置
    *   /hogehoge/redmine-3.1.2-0/apps/redmine/htdocs/public/themes
*   添付ファイル  
以下に配置
    *   /hogehoge/redmine-3.1.2-0/apps/redmine/htdocs/files
*   添付ファイルフォルダの権限設定
    * chown -hR daemon:daemon /hogehoge/redmine-3.1.2-0/apps/redmine/htdocs/files
    * chmod -R 775 /hogehoge/redmine-3.1.2-0/apps/redmine/htdocs/files

### その他の環境設定

*   名前解決
    * 必要があれば以下ファイルに設定追加
        * /etc/hosts  
XXX.XXX.XXX.XXX hogehoge

### 基本動作の確認

*   サービス再起動
    * /opt/redmine-3.1.2-0/manager-linux-x64.run
    * apacheを起動  
※サービスの自動起動は別途設定が必要

### プラグインの導入
特に苦労したプラグインについて

*   redmine_app_notifications
    *   bundle installを通すための準備  
        * 参考
            * http://qiita.com/nekakoshi/items/98bcdf0137e55a0b2395
            * http://qiita.com/pugiemonn/items/4b23a709ed194b02be6d
            * http://www.nokogiri.org/tutorials/installing\_nokogiri.html\#red\_hat**\_centos
        * 以下コマンドで必要になるライブラリ導入
            * sudo yum install gcc gcc-c++ ruby-devel zlib-devel libxml2-devel libxslt-devel  
※gcc-c++がeventmachine用、その他全てがnokogiri用
    *   faye入れるためのbundle install
        *   /hogehoge/redmine-3.1.2-0/use_redmine
        *   cd /hogehoge/redmine-3.1.2-0/apps/redmine/htdocs
        *   プロキシ環境では設定が必要
            *   export http_proxy=http://XXX.XXX.XXX.XXX:nnnnn/  
※環境変数は小文字で
        * bundle config build.nokogiri --use-system-libraries  
nokogoriのビルドにシステムのライブラリを使うための指定
        *   bundle install
    *   fayeの起動
        *   /hogehoge/faye_for_redmine start
    *   web-socket用のポート開放
        * firewall-cmd --add-port=xxxx/tcp
        * firewall-cmd --permanent --add-port=xxxx/tcp
    *   apache再起動

# 所感
* サーバ移行やバージョンアップを考えると、カスタマイズには必ずview_customizeプラグインを使うべき
* Bitnami便利