yano3nora
7/2/2017 - 7:11 AM

[Redmine: note] Redmine導入備忘録 #redmine #linux

[Redmine: note] Redmine導入備忘録 #redmine #linux

OVERVIEW

Redmine は Ruby on Rails 製の OSS なバグトラッキング & プロジェクトのチケット管理システム。

再起動

$ cd redmine/tmp/
$ touch restart.txt

ログ参照

$ less ./redmine/log/production.log

キャッシュ削除

$ bundle exec rake tmp:cache:clear
$ bundle exec rake tmp:sessions:clear

REST API

Redmine API - www.redmine.org
REST API - redmine.jp
curl + 4 通りの方法で Redmine の API 認証を通してみる

  1. システム管理者でログイン
  2. 管理 > 設定 > API より「REST による Web サービスを有効にする」をチェック
  3. 個人設定 > API アクセスキーより認証用のキーを取得
  4. curl などで GET /issues/[id].[format] とかリクエスト
    • このとき API アクセスキーを key パラメータまたは X-Redmine-API-Key ヘッダとして付与
# key パラメータで送る例
$ curl https://$HOST/issues/12345.json?key=$KEY

# ヘッダで送る例
$ curl -H "X-Redmine-API-Key: $KEY" https://$HOST/issues/12345.json

TIPS & REFERENCES

Slack 連携

redmine-slack プラグインもあるが、カスタマイズ性を考えると RSS を利用するのもよさそう。

Redmineのチケット更新をSlackに通知する 【プラグイン不要】

テーマ

テーマは redmine/public/themes にぶち込んで管理画面より変更。

redmine-theme-flat

CSS

CSSの編集はテーマ側でやっちゃうのが無難か...

$ vim public/themes/themename/stylesheets/application.css

メール送信設定

Git との連携

リポジトリ - redmine.org RedmineとGitHubを連携

$ git commit -m "->DONE #999 @0.0h"

# 連携キーワード チケット番号 時間の順番
# gitbucket 側の webhook テスト失敗してても動きました
  1. 【初回】ApacheのSSHキー登録
    • $ mkdir /var/www/.ssh
    • $ chown -R apache:apache /var/www/.ssh
    • $ sudo -u apache ssh-keygen -t rsa
    • $ cat /var/www/.ssh/id_rsa.pub
  2. 【初回】gitbucket側でSSHキー登録
    • $ sudo -u apache touch /var/www/.ssh/config
    • $ sudo -u apache vi /var/www/.ssh/config
  3. 【初回】redmine配下にgitディレクトリ作成
    • $ mkdir /var/www/html/redmine/git
    • $ chown -R apache:apache
  4. 【初回】Redmine>管理で以下設定
    • リポジトリ>APIキー:生成→(5.)のtokenへ
    • API:RESTによるWEBサービス有効へ
  5. 【追加時】Redmine用リポジトリclone
    • $ cd redmine/git
    • $ sudo -u apache git clone --mirror ~.git
  6. 【追加時】GitbucketにてService-hook設定
    • Add Webhook から追加
    • URL: http://~/github_hook?project_id=p1
    • content type: application/json
    • token:(3.)のAPIキー
    • Which events...: pushのみ
    • 参考:https://goo.gl/BfGhzL
  7. 【追加時】Redmineのプロジェクト設定
    • プロジェクト>設定>リポジトリ>新しい...
    • 管理システム:Git
    • メインリポジトリ:True
    • 識別子:p1 など任意
    • パス:/var/www/html/redmine/git/~.git
    • エンコーディング:UTF-8
    • 最新コミット表示:True

期日間近・超過チケットのメール通知

コマンドラインで bundle exec rake redmine:send_reminders を実行することにより、各々のユーザーに対して期日間近および期日超過のチケットの一覧が送られます。

オプション説明
days期限何日前から通知するか (デフォルト: 7)
tracker通知対象トラッカーのid (デフォルト: すべてのトラッカー)
project通知対象プロジェクトのidまたは識別子 (デフォルト: すべてのプロジェクト)
users通知対象のユーザーまたはグループのid (デフォルト: すべてのユーザー)※コンマで区切って複数のidを指定できます
version通知対象の対象バージョン (デフォルト: 指定なし)

Cron 登録して定期実行する例

$ vim /etc/crontab
> 30 8 * * * root cd /path/to/redmine && /usr/local/bin/bundle exec /usr/local/bin/rake redmine:send_reminders RAILS_ENV=production

PLUGINS

Install

各プラグインの GitHub いって README.md 見れば大体わかる。以下手順でインストール後にメニュー「管理」からプラグインが登録されていることを確認&設定ぽちぽち ... 。

$ cd /path/to/redmine
$ cd plugins
$ git clone https://github.com/hoge/redmine-fuga-plugin.git
$ cd ..
$ bundle install
$ bundle exec rake redmine:plugins:migrate RAILS_ENV=production
$ touch tmp/restart.txt

Uninstall

$ cd /path/to/redmine
$ bundle exec rake redmine:plugins:migrate NAME=redmine_plugin VERSION=0 RAILS_ENV=production
$ rm -rf plugins/redmine_plugin
$ touch tmp/restart.txt

Customize

  • redmine/plugins に プラグインディレクトリを作って中に init.rb とか置いておくと読み込まれてくれる。他のプラグイン参考に組み立てていけば OK 。
  • グローバルメニュー追加

INSTALLATION

CentOS6.x への導入

  1. Redmineのtar.gz落としてきて展開
  2. config/database.yml を新規作成or移植
  3. config/configuration.yml を新規作成or移植
  4. plugins 中身あれば移植
  5. files中身あれば移植
  6. bundle install
  7. セッション秘密鍵
    • $ bundle exec rake generate_secret_token
  8. DBマイグレート
    • $ bundle exec rake db:migrate RAILS_ENV=production
    • $ bundle exec rake redmine:plugins:migrate RAILS_ENV=production
    • $ RAILS_ENV=production bundle exec rake db:migrate
    • $ RAILS_ENV=development bundle exec rake db:migrate
  9. キャッシュクリア
    • $ bundle exec rake tmp:cache:clear tmp:sessions:clear
  10. 権限設定
    • $ chown -R apache:apache /var/www/html/redmine
    • $ chown -R apache:apache /usr/local/app/redmine-***
  11. 再起動
    • $ touch レッドマインDIR/tmp/restart.txt
    • $ service httpd restart

日本語フォントのインストールと設定

ガントチャートをPNG形式の画像に出力すると文字化けする

# Redhat / CentOS
$ yum install ipa-pgothic-fonts
$ yum install ipa-pmincho-fonts
$ cd /usr/share/fonts/ipa-pgothic  # 存在確認
$ cd /path/to/redmine
$ vim config/configuration.yml
> # 日本語に対応したフォントのパスを指定。値は環境によって異なる。
> rmagick_font_path: /usr/share/fonts/ipa-pgothic/ipagp.ttf

# Amazon Linux
$ yum install ipa-gothic-fonts
$ yum install ipa-mincho-fonts
$ cd /usr/share/fonts/ipa-gothic  # 存在確認
$ cd /path/to/redmine
$ vim config/configuration.yml
> # 日本語に対応したフォントのパスを指定。値は環境によって異なる。
> rmagick_font_path: /usr/share/fonts/ipa-gothic/ipag.ttf

ImageMagick の導入

画像のサムネイル表示に使うアプリケーション。

# 以下コマンドで導入後サーバ再起動
$ yum install ImageMagick

msttcorefonts の導入

http://blog.redmine.jp/articles/centos5-install-rmagick/

$ cd ~
$ yum install rpm-build wget ttmkfdir
$ rpm -ivh http://www.cabextract.org.uk/cabextract-1.4-1.i386.rpm
$ wget  http://corefonts.sourceforge.net/msttcorefonts-2.5-1.spec
$ rpmbuild -bb msttcorefonts-2.5-1.spec
> ...
> Checking for unpackaged file(s): /usr/lib/rpm/check-files /usr/src/rpm/BUILDROOT/msttcorefonts-2.5-1.x86_64
> Wrote: /usr/src/rpm/RPMS/noarch/msttcorefonts-2.5-1.noarch.rpm
> ...
$ rpm -ivh /usr/src/rpm/RPMS/noarch/msttcorefonts-2.5-1.noarch.rpm
$ mkdir -p /usr/share/fonts/default/TrueType
$ cd /usr/share/fonts/default/TrueType
$ find /usr/share/fonts/msttcorefonts -exec ln -s {} \;

# 未検証
$ wget http://www.cabextract.org.uk/cabextract-1.4-1.src.rpm
$ rpmbuild --rebuild cabextract-1.4-1.src.rpm
$ rpm -ivh /usr/src/rpm/RPMS/x86_64/cabextract-1.4-1.x86_64.rpm

Rmagick の導入

$ cd /path/to/redmine
$ vim Gemfile
> # rmagick をインストールするように変更
$ bundle install

CentOS6.x サーバ移転

$ sudo su

# 新規サーバにruby2.3.xやら何やら導入
$ yum remove ruby20
$ yum install ruby23
$ yum groupinstall "Development Tools"
$ yum -y install openssl-devel readline-devel zlib-devel curl-devel libyaml-devel libffi-devel
$ yum -y install ImageMagick ImageMagick-devel ipa-pgothic-fonts

# rails, bundler, passenger を gem で導入
$ gem install rails
$ gem install yard
$ gem install bundler --no-rdoc --no-ri
$ gem install passenger --no-rdoc --no-ri
$ /usr/local/bin/passenger-install-apache2-module --auto --languages ruby

# 旧サーバの mysql ダンプ ( DB 情報は config/database.yml 参照 )
$ mysqldump -u MySQLユーザー名 -pMySQLパスワード Redmineデータベース名 > データ出力先ファイル名

# redmine/files をバックアップ ( 添付ファイル )
# redmineディレクトリをまるまる移動

# sql ダンプから mysql を復元 ( 同じ空の DB / ユーザ / 権限 を用意してから )
$ mysql -u ユーザー名 -pパスワード DB名 < ダンプデータファイル名

# インストール
$ bundle install  # パス通ってなかったら → /usr/local/bin/bundle install
$ bundle exec rake generate_secret_token
$ bundle exec rake tmp:cache:clear tmp:sessions:clear

# httpd 設定
$ vim /etc/httpd/conf.d/redmine.conf
> <Directory> 内にアクセス許可設定
> CentOS7.x系は Require all granted
> CentOS6.x系は AllowOverride all & Order allow,deny & Allow from all
$ chkconfig httpd on
$ chown -R apache:apache /var/www/html/redmine
$ /usr/local/bin/passenger-install-apache2-module --snippet  # 表示された内容を httpd.conf へ
# サブディレクトリ運用の場合はAlias,Locationの設定を記述

# DB マイグレート
$ bundle exec rake db:migrate RAILS_ENV=production
$ bundle exec rake redmine:plugins:migrate RAILS_ENV=production
$ RAILS_ENV=production bundle exec rake db:migrate
$ RAILS_ENV=development bundle exec rake db:migrate

# コンフィグテスト & 再起動
$ touch ./tmp/restart.txt
$ service httpd configtest
$ service httpd restart

CentOS5.x への導入

Redmine/Redmine 2.6をCentOS 5.11にインストールする手順

# database ~~ adapter ~~ なんちゃら的なエラーは database.yml に development モード加えたら通った
production:
  adapter: mysql2
  database: db_redmine
  host: localhost
  username: user_redmine
  password: password
  encoding: utf8
development:
  adapter: mysql2
  database: db_redmine
  host: localhost
  username: user_redmine
  password: password
  encoding: utf8
# bundler を使ったビルドは以下で突破
$ bundle install --without development test rmagick --path vendor/bundle
$ bundle exec rake generate_secret_token
$ RAILS_ENV=production bundle exec rake db:migrate
# バージョン要件OKなはずなのに passenger のインストール時に ruby-version2.2.2 以上にしてね!って怒られたのは以下で解決
$ gem install rack