あっかぎのページ

「やる事」見える化@Redmine編

20150413_1
(クリックで画像拡大します)

昨日の記事の続きで、Redmineを導入するまでのメモです。

「やる事」見える化の仕組み作りとしてRedmineを導入します。導入する先はRaspberry Piです。

Redmineは一言でいうとタスクをチケットという単位で管理するデジタルツールです。詳細はRedmine日本語ページをご参照ください。

RedmineはRuby on Rails上のツールなので、基本的にRubyとRailsが動く環境があれば導入できると思います。

内容

  • 導入(apt-get install)
  • 3.0へアップグレード
  • Redmine導入
  • Apache2で動作

導入(apt-get install)

個人で使うのでデータベースはSQLiteを使うことにしました。(一般的な用途なら同時アクセスに対応できるMySQLがいいと思います)

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

$ sudo apt-get install libapache2-mod-passenger
$ sudo apt-get install redmine
databaseにSQLiteを選択

passengerの設定

www-data権限の行を追加します。

$ sudo vi /etc/apache2/mods-available/passenger.conf
PassengerRoot /usr
PassengerRuby /usr/bin/ruby
PassengerDefaultUser www-data

apache2の設定

/var/www/redmineでアクセスできるようにapache2を設定します。

$ sudo ln -s /usr/share/redmine/public /var/www/redmine
$ sudo vi /etc/apache2/sites-available/default

...

RailsBaseURI /redmine
PassengerResolveSymlinksInDocumentRoot on

...

上記で設定が完了しましたので、モジュールの読み込みとapache2の再起動です。

$ sudo a2enmod rewrite
$ sudo service apache2 restart

Redmineの画面表示

20150410_1

Raspberry Piのアドレスへブラウザでアクセスします。

http://192.168.xxx.yyy/redmine

上のようなホーム画面が出ればRedmine導入完了です。

以降はこちらのはじめてのRedmineを参考に進めてください。
流れとしてはこんな感じです。

adminでログイン → ユーザー追加 → プロジェクト追加

プロジェクトを作って関係するメンバーを加えます。(ぼくの場合は1人ですが・・・(^^;) 管理のやり方によってロール(役割)や権限などいろいろ設定できますが、最初はデフォルトにして全員が管理者でいいと思います。あとは、プロジェクトに応じてタスク(チケット)を作って管理していきます。

例えば「バーベキューをする」をひとつのプロジェクトとして考えます。

  • 参加メンバーを決める
  • 日時を決める
  • 場所を予約
  • 食材を購入
  • 機材の準備

これらの項目ひとつひとつをチケットとして発行します。その際に担当者と期間を設定しておきます(他の設定は最初はほっといて大丈夫です)。

これでやる事が見える化できます。見える化することで”だれ”が”いつ”までにやるかが明確になりますね。

タスクが完了するとチケットを完了することで、進捗状況が把握できるようになります。上の例で言うと、期日までに「参加メンバーを決める」チケットが残ったままになっていると、やり残しているのがわかるので対応を考えることができるという仕組みです。実際にはメールで事前にアラートをならしたり、wikiを使っての情報共有なども利用してコミュニケーションを取りながら課題(タスク・チケット)を解決していきます。

このチケット型の開発を仕組みとして取り入れることで、やる事の見える化ができるということですね。

Redmineを使った見える化の簡単な例としてぼくの場合。(できるのだろうか・・・(~o~)

20150413_1
(クリックで拡大できます)

3.0へアップグレード

普通は上の手順でRedmineの導入が完了しました。ここから先のお話は、最新版を使いたい人や旧バージョンからのアップグレードをしたい人向けの話になります。

Redmine導入

先ほどの手順でRedmineが導入できました。はい、めでたしめでたし。・・・となるのですが、wikiをmarkdown記法で記入できないかと調べてみるとバージョン2.5以降でテスト対応とのこと。
※markdown記法については過去記事参照

ところが、DebianのRedmineのバージョンは1.4・・・あかんがな(;_;)wiki記法で妥協してもいいのですが、このWebもmarkdownで書いているので、できれば統一しておきたいところです。

ということで、アップグレードをすることに。まず、本家のRedmineでダウンロードしようとすると、なんと3.0.1バージョン。どうやらすでに3.x系が安定板でリリースされているようです。今回はこの3.x系の最新版の3.0.1を導入することにしました。(Raspberry Piなのでちょっと複雑でした)

アップグレード

基本はこちらの手順にそってやっていきます。ただ、Raspberry PiなのでImageMagickがらみを先にインストールしておきます。あと、SQLiteを使いますので、MySQLやPostgreSQLの場合はこちらを参考にしてください。

$ sudo apt-get install imagemagick libmagick++-dev

これ以降はRubyのgemとbundleを利用したインストール手順となります。aptのパッケージとgemが競合してしまうので、rbenvというRubyのバージョン管理を利用するのがオススメです。

ダウンロード&展開

$ cd /home/pi
$ wget http://www.redmine.org/releases/redmine-3.0.1.tar.gz
$ tar zxvf redmine-3.0.1.tar.gz

データーベースの設定ファイルの編集

SQLite3の設定3行のコメントを外して、他のMySQLなどの行はすべてコメントアウトします。ここではデータベースのデータをdb/redmine.sqlite3というファイルで保存することにします。

$ cd redmine-3.0.1
$ cp config/database.yml.example config/database.yml
$ vi config/database.yaml

...
# SQLite3 configuration example
production:
adapter: sqlite3
database: db/redmine.sqlite3
...

関連するRubyパッケージの導入&cookie用のkey作成

$ gem install bundler
$ bundle install --without development test postgresql mysql
$ bundle exec rake generate_secret_token

データベースの移行

apt-get installでインストールした1.4バージョンのSQLite3データーべースを再構築します。(最初から3.0を導入する場合は1.4のデータベースをコピーする部分は不要です)

$ cp /var/lib/dbconfig-common/sqlite3/redmine/instances/default/redmine_default db/redmine.sqlite3
$ RAILS_ENV=production bundle exec rake db:migrate
$ RAILS_ENV=production bundle exec rake redmine:load_default_data

今後はこのdb/redmine.sqlite3ファイルをコピーすることでデータ(データベース)のバックアップがとれます。(添付ファイルも必要な場合はfilesフォルダも)

権限設定

piユーザーがwww-dataグループに所属しているとして、www-data(apache2)に権限を付与します。

$ chgrp -R www-data files/ log/ tmp/ public/plugin_assets/
$ chmod -R 0775 files/ log/ tmp/ public/plugin_assets/

テスト動作

Ruby付属のWEBrickというweb serverでテスト起動します。

$ bundle exec rails server webrick -e production -b 192.168.xxx.yyy

ブラウザでは3000番のポートでアクセスできます。

http://192.168.xxx.yyy:3000/

これで最初のRedmine画面が表示されればRedmineそのものの準備は完了です。でも、実はここからが大変。

Apache2で動作

ということで、Redmine自体の準備が完了してからが実は大変です。

最終仕上げのApache2動作でやることがいろいろとあります。

  • passengerのgemインストール
  • passengerのモジュール作成
  • 必要パッケージのインストール
  • スワップメモリの割り当て
  • Apacheの設定
  • 動作確認

特にRaspberry Piが非力なため、passengerのモジュール作成でちょっと苦労します。

とりあえず、手順を紹介していきます。ここではrbenvでRubyのバージョンを管理している環境下での設定とします。

passenger関係

passenger関係はコンパイルなどがあるため30分程度時間がかかります。

$ rbenv exec gem install passenger --no-rdoc --no-ri
$ rbenv rehash
$ passenger-install-apache2-module

ここで、Enterボタンで対話を進めていきます。まずは不足するモジュールを調査して表示してくれますので、不足するモジュール群をインストールしていきます。ぼくの場合はこんな感じのパッケージ不足がありました。

$ sudo apt-get install libcurl4-openssl-dev apache2-threaded-dev libapr1-dev libaprutil1-dev
$ passenger-install-apache2-module

再度Enterで続けていくと、今度はメモリ不足が指摘されます。passengerのモジュール作成では1GB程度のメモリを想定しているようですが、Raspberry Piは500MB程度しかありません(Raspberry Pi B+の場合)。そこで「スワップ領域を作ってメモリ領域を確保してね」という警告が出るのでそれに従いいます。(無視して進めてコンパイルが失敗しましたw)

$ sudo dd if=/dev/zero of=/swap bs=1M count=1024
$ sudo mkswap /swap
$ sudo swapon /swap
$ passenger-install-apache2-module

Enterを押していって無事に完了するとpassengerのモジュール作成が完了します。(Apache2の設定ファイルの表示と完了の旨が出力されると思います。)

Apache2の設定

上で作ったpassengerのモジュールをApache2へ組み込みます。

次のコマンドを実行するとapacheの設定する内容が出力されます。ぼくの場合はこんな感じです。

$ passenger-install-apache2-module --snippet

LoadModule passenger_module /home/pi/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/passenger-5.0.6/buildout/apache2/mod_passenger.so

PassengerRoot /home/pi/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/passenger-5.0.6
PassengerDefaultRuby /home/pi/.rbenv/versions/2.2.0/bin/ruby

Raspberry Pi(Debian系)ではApache2の設定ファイルがモジュールの定義と設定が分かれていますので各々ファイルを編集します。

$ sudo vi /etc/apache2/mods-available/passenger.load

LoadModule passenger_module /home/pi/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/passenger-5.0.6/buildout/apache2/mod_passenger.so
$ sudo vi /etc/apache2/mods-enabled/passenger.conf
PassengerRoot /home/pi/.rbenv/versions/2.2.0/lib/ruby/gems/2.2.0/gems/passenger-5.0.6
PassengerDefaultRuby /home/pi/.rbenv/versions/2.2.0/bin/ruby

続けて/var/wwwにRedmineのpublickフォルダのリンクを貼ります。(/home/piへRedmineをインストールしたと仮定しています)

$ ln -s /home/pi/redmine-3.0.1/public /var/www/redmine

最初にapt-get install redmineでリンクを貼った時と重複する場合は名前を変更するなど適宜変更してください。リンク名を変えた場合は/etc/apache2/sites-available/defaultの内容に次の内容を追記します(例.リンクが/var/www/hogeの場合)。

$ sudo vi /etc/apache2/sites-available/default
RailsBaseURI /redmine
PassengerResolveSymlinksInDocumentRoot on

今回のRedmine関連にもwww-data(Apache2)のグループ権限を付与しておきます(ぼくの場合)。

$ chgrp -R www-data files/ log/ tmp/ public/plugin_assets/
$ chmod -R 0775 files/ log/ tmp/ public/plugin_assets/

所有者をwww-dataにしたい場合はこちらのコマンドになるかと思います。

$ sudo chown -R www-data:www-data files/ log/ tmp/ public/plugin_assets/
$ sudo chmod -R 0755 files/ log/ tmp/ public/plugin_assets/

最後にApache2を再起動します。

$ sudo a2enmod passenger
$ sudo service apache2 restart

ここでApache2起動時にエラーがなければ準備完了です。

動作確認

20150410_1

ブラウザにてRedmineにアクセスしてみます。

http://192.168.xxx.yyy/hoge

これで、上の画面のようなRedmineのホーム画面が出れば完了です。

こんな感じでぼくの目的のmarkdown記法がwikiで使えるようになりました。めでたしめでたし。

20150415_5
(クリックで画像が拡大します)

参考