2015年7月15日水曜日

Redmineのアップグレード(2.4.1→3.1)とGoogle認証プラグイン

Redmine 2.4.1を使っていましたが、3.1がすでにリリースされていてサポートも2.6 / 3.0 / 3.1しかされていない状況です。
「SSL+パスワードロック」+「IP制限」をさらに上からかぶせているので、ちょっと後回しになっていたのですが、一念発起してアップグレードしました。さすがにバージョンを大幅にアップしたこともあり、やった内容についてメモしておきます。

おもにサーバー管理者向けのため、当然知っているはずのウェブサーバー設定など細かい説明は省いている部分があります。

はじめに

  • Ruby, Passenger(mod_rails for Apache)は変更しない 
  • 前の環境にいつでも戻せるようにする
     ※URLは変更する
ことを前提に、Redmineのアップグレードを行いました。
あまり一度にやってしまうとトラブルシューティングが大変だからです。

1. 仕様確認


を確認しましょう。

  • 3.0系「Ruby 1.9.3以降、Rails 4.2以降」
ということで、今回はRuby 1.9.3のままでアップグレードします。


2. バックアップ

データベース(MySQL)


ファイル/フォルダ


まるごととっておきましょう。
本当に必要なのは
  • config/database.yml
  • config/configuration.yml
  • plugins
  • files
  • public/themes
あたりかなーと思います。

3. アップグレード

元フォルダ:redmine(URLは /redmine
新フォルダ:redmine-svn/3.1-stable(URLは /redmine31)

とします。SVNで今度導入していこうと思ったので、redmine-svnフォルダ以下にいれました。以下コマンド

mkdir redmine-svn
cd redmine-svn
svn co https://svn.redmine.org/redmine/branches/3.1-stable/


4. 設定のコピーと編集

cd 3.1-stable
cp -p ../../redmine/config/database.yml  config/
cp -p ../../redmine/config/configuration.yml config/

database.yml の編集


  database: redmine
  を
  database: redmine31

データベース上に「redmine31」を作成


権限は、以前のredmine管理ユーザーでいいかなと思いますが、そのあたりは各自判断。
redmine からデータをSQL形式でエクスポートして、

/redmine →  /redmine31

と中身を置換してから、redmine31の方にインポートします。

これが大事で、以後 DBはredmine31, URLは ****/redmine31 になって全く別ものでコンテンツは同じという状況を作り出せます。

5. ファイルのコピー

cp -rp ../../redmine/files/* files/
cp -rp ../../redmine/plugins/* plugins/
cp -rp ../../redmine/public/themes/* public/themes/
 

6. 準備

3.1-stable のフォルダに入った上で、

gem install bundler
bundle install --without development test
bundle exec rake generate_secret_token

DocumentRoot以下にシンボリックリンクが必要(Railsが動作しない)


DocumentRoot以下に設置するか、シンボリックリンクを張っておけばいいでしょう。

DBのアップデートとキャッシュクリア


bundle exec rake db:migrate RAILS_ENV=production
bundle exec rake redmine:plugins:migrate RAILS_ENV=production
bundle exec rake tmp:cache:clear tmp:sessions:clear


7. redmine_omniauth_googleのパッチを手動であてる


Redmine 3.0以降で動作しなくなっていたので、


を手動であてた(プルリクが適応されてないね)

8. ウェブサーバーの設定変更

すでにredmineで設定したので、その設定を基本的にはコピーしつつ
redmine31に変えておけばいけるでしょう。

9. redmine_omniauth_googleの設定変更

初めて使うなら、【まめ知識】RedmineでGoogle Apps認証!を参考。
そうでないなら https://cloud.google.com/console より、すでに設定したものの APIと認証、認証情報にある「リダイレクト URI」に

◯◯/redmine31/oauth2callback を追加しておけばよい。

10. リダイレクト

動作確認できれば
/redmine --> /redmine31 へ飛ばすように変更

もし問題があれば、リダイレクトを解除して両方使えるようにして検証するなりすればよでしょう。

2015年7月15日 @kimipooh


0 件のコメント:

コメントを投稿