講演2 実例に基づくRedmine管理者入門 r2

Preview:

Citation preview

実例に基づく Redmine管理者入門

2015年11月28日松谷 秀久(@mattani)

カスタマイズ事例とノウハウ

Excelからのインポート

Redmine+ Subversionを使いこなそう

このプレゼンで伝えたいこと

いずれも、ちょっとしたコツが必要です。そのコツをお伝えします。

ハンドルネーム @mattani

所属 NTTコムウェア(株)

担当業務◦ あるシステムの運用担当(SE)でRedmine管理者

Redmine歴◦ 約3年◦ Bitnami Redmineを利用。(今使っているのは3.0.3)◦ ユーザ数80名。プロジェクト数 10~15◦ タスク管理、課題管理、インシデント管理、検証設備利用申請管理、工事管理◦ ヘルプデスク問合せ管理、脆弱性管理  他

利用しているプラグイン◦ clipboard_image_paste◦ redmine_comment_only◦ redmine_importer◦ redmine_information ◦ redmine_issue_templates   他

自己紹介

カスタマイズ事例とノウハウ

私が行ったインシデント管理のカスタマイズ事例をご紹介します

インシデントとは◦商用システムで発生した申告や監視アラーム事象のこと◦すべてが問題とは限らないが、適切に対処しないとお客様クレームにつながります

Excelで管理すると・・・◦だれがどこを変えたかわからない◦だれが何を判断して完了にしたのかわからない◦更新頻度が遅くなり、書き忘れも多い

カスタマイズ事例とノウハウ

状態遷移図◦最初に管理する対象の状態遷移図を書きます

カスタマイズ事例とノウハウ

新規 調査中 対処待ち

完了

調査着手 調査完了 対処完了

対処不要

再対処要

再調査要

対応が不十分な場合を追加

完了

破棄

リーダが確認

リーダが確認

完了待ち

リーダの確認を追加完了の前に完了待ちを追加

保留

保留/保留解除

保留/保留解除を追加

状態遷移図を書いた結果、インシデントの管理には「新規」、「調査中」、「対処待ち」、「完了待ち」、「完了」、「破棄」、「保留」の7つのステータスが必要

チケットのステータス設定◦作成した状態遷移図に従ってステータスを設定します

カスタマイズ事例とノウハウ

既存のステータスで使わないものは削除してもOK(使っているものは消さない)必要に応じてステータスを作成

設定後はこんな感じ

トラッカー設定◦トラッカーはチケットの大分類◦トラッカー毎に、ワークフローの定義や使用するカスタムフィールドを変えられる

カスタマイズ事例とノウハウ

トラッカー「故障」では、親チケット、予定工数を使わないのでチェックしない

インシデント管理プロジェクトを選択まだプロジェクトを作っていない場合は、後で設定してもよい

インシデント管理のワークフローを識別するトラッカー「故障」を作ります

ワークフロー設定◦管理者はどのステータス間でも遷移できるようにする

カスタマイズ事例とノウハウ

管理者は、どんなステータスにでも変更できるようにします

ワークフロー設定◦報告者は「完了」「破棄」はできないようにする

カスタマイズ事例とノウハウ

「完了」「破棄」にできないようにします

「新規」にできる必要はないので、チェックを外します

カスタムフィールド設定◦チケットに追加したいカスタムフィールドを追加します

カスタマイズ事例とノウハウ

テキストの書式をチェックするとフィールド中でWikiフォーマットを使用可能

チケット一覧のフィルタとして使用する場合チェック

検索対象にしたい場合のみチェック(性能低下につながるので必要な場合のみ)

よくある質問プロジェクトでカスタムフィールドにチェック入れたのにチケット入力画面に表示されない

回答トラッカーのカスタムフィールドもチェック入れたか?

カスタマイズ事例とノウハウ

プロジェクトの設定で、使用するカスタムフィールドにチェック

トラッカーの設定でも、使用するカスタムフィールドにチェック

追加したカスタムフィールド例

カスタマイズ事例とノウハウ

カスタムフィールドを増やすのは、 Excelでいうとカラムを増やすイメージ。増やしすぎると煩雑なので、基本機能の注記も有効活用を!

名称 書式 テキストの書式 フィルタとして使用 検索対象 意味申告者 テキスト - レ レ 申告者名サービス影響有無リスト - レ - サービス影響の有無影響内容 長いテキスト レ レ レ 影響内容影響ゲスト 長いテキスト レ レ レ 影響をうけるゲストエスカレ有無 リスト - レ - 一次受付完結かエスカレしたかセンタ名 リスト - レ - インシデントの発生したセンタ調査・対応状況 長いテキスト レ レ レ 調査・対応状況結果 長いテキスト レ レ レ 調査状況・結果対処内容 長いテキスト レ レ レ 対処内容備考 長いテキスト レ レ レ メモ

親プロジェクトの設定

カスタマイズ事例とノウハウ

親プロジェクトの識別子は後で作成するリポジトリと同じ名前にします

使わないモジュールはオフにします

使用するカスタムフィールドを選択します

親プロジェクトにチケットを発行できないようにするためオフにします。

子プロジェクトの設定

カスタマイズ事例とノウハウ

使わないモジュールはオフにします(リポジトリは親プロジェクトで管理するのでオフ)

プロダクト全体の子プロジェクトにしています

使用するカスタムフィールドをチェックします

親プロジェクトのメンバを引き継ぎます

バージョンとロードマップ

カスタマイズ事例とノウハウ

新しいバージョンを作成すると・・

ロードマップもセットで作られます

親プロジェクトで作成して、子プロジェクトに共有できます

バージョン・ロードマップのWikiページには、そのバージョンの体制、計画などを記述

私の場合、四半期毎にインシデントの分析をするので四半期に対応したバージョンを作っています

グループとユーザ

カスタマイズ事例とノウハウ

おすすめできない例

課題管理 PJ

Aさん(管理者)

Bさん(報告者)

Aさん(管理者)

Bさん(報告者)

Aさん(管理者)

Bさん(報告者)

Cさん(報告者)Cさん(報告者)

Cさん(報告者)

・グループを使っていない・子プロジェクトでユーザの継承を行っていない→ユーザと権限の管理が煩雑になる

インシデント管理 PJ

〇〇プロジェクト

課題管理 PJインシデント管理 PJ

Aさん

○○_リーダ G(管理者)

○○_運用 G(報告者)

Bさん

Cさん

親プロジェクトの

ユーザを継承

親プロジェクトの

ユーザを継承

• グループを使うとまとめてユーザを登録できる

• 権限の設定変更も容易• 親プロジェクトのユーザ継承を行うと管理が楽

おすすめ例

〇〇プロジェクト

まとめ◦まず管理対象を明確にして状態遷移図を書く◦状態遷移図でわかったステータスを登録◦ワークフローを識別するトラッカーを作成

私の経験上、トラッカー作り過ぎは NG(1~2/ PJ)◦ワークフローは管理者用と報告者用

管理者は制限なし、報告者は必要最小限の制限をつける

◦親プロジェクトは子プロジェクトを束ねる 親プロジェクトにトラッカーは登録しない リポジトリは親プロジェクトで作成

◦バージョンとロードマップはセットで作られる 見通しが良くなるのでなるべく作成する

◦グループ作成で管理を省力化する

カスタマイズ事例とノウハウ

Excelからのインポート

現在の Redmineでは、インポートはプラグインが必要です。◦次リリースされる Redmine3.2.0では、標準機能で CSVインポートがサポートされるかも・・・

インポートプラグインは開発が活発です。◦ Redmine.JPの紹介 (※1 )によると、※2が近年活発に更新されている、と紹介されていますが、こちらはまだ Redmine3.0に対応していないようです。

◦※2からフォークした※3が 2015/4月以降も活発に更新されています。 Redmine3.0以降に対応しています。

Excelからのインポート

※1  http://redmine.jp/faq/issue/csv/※2  https://github.com/zh/redmine_importer※3  https://github.com/stateio/redmine_importer 以前は

Internal Errorが良く出て困った。最近は安心。

Redmine_importerプラグインのインストール◦ Githubから、 zipファイルをダウンロードして、 redmineの

pluginsフォルダに展開します。名前は redmine_importerというフォルダ名にします。 bitnamiの場合

に redmine_importerを展開します。◦以下のコマンドでDBのマイグレーションを行います。

◦ Redmineを再起動します。◦ Redmineの管理メニュー→プロジェクト→設定→モジュールから、モジュールを有効にします。

◦管理メニュー→情報で、インストールされていることを確認。 インストール詳細はプラグインの指示に従ってください。

Excelからのインポート

bundle exec rake redmine:plugins:migrate RAILS_ENV=production

/opt/redmine-X.X.X-X/apps/redmine/htdocs/plugins/

Excelでインポート用データを準備◦そのファイルを CSV形式で保存します

Excelからのインポート

担当者を読み込む場合は、 Redmineの IDにする。→上記の×は匿名ユーザになる

日付を読み込む場合は、 YYYY-MM-DD形式でないと読み込めない場合も。(最近は改善された)

SAMPLE×

×

×△〇

〇××

Redmineにインポート◦プロジェクト→インポートからアップロードします

Excelからのインポート

SJISを選択

作成した Excelファイルを選択

各列のフィールドとの対応を指定します。◦ Excelと Redmineのカラム名が同じ場合はデフォルトで対応されています。

Excelからのインポート

必須フィールドは必ず指定すること。例)題名や必須にしたカスタムフィールド

いろいろと読み込み時のオプションを指定できます「未登録のユーザーは匿名ユーザーに~」を有効にしないと、未登録のユーザーがあると Internal Errorが発生します

Excelのカラム情報

Redmineのカラム情報

インポート結果が表示されます◦正しく読み込めた行数、エラーメッセージとそれに対応する行の情報が表示されます

Excelからのインポート

正しく処理された行数を表示

エラーメッセージを表示

失敗した行の情報

まとめ◦現在は Redmineのインポートはプラグインが必要◦プラグインは開発が活発なので、最新のフォークを確認してインストールする必要がある

◦担当者をインポートする場合は、 Redmine IDを指定

Excelからのインポート

Redmine+Subversionを使いこなす

なぜ gitでなくて Subversion?Redmine+Subversionを使いこなす

集中型 分散型

なぜ gitでなくて Subversion?Redmine+Subversionを使いこなす

チーム全体での成果管理チーム全体の成果管理

+個人の構成管理

構成管理対象

使用ディスク量

集中リポジトリ:大ローカルエリア:小~大

集中リポジトリ:大ローカルリポジトリ:大

コミット方法 集中リポジトリへのコミット ローカルコミットでテストし

集中リポジトリにコミット

私の場合、管理対象は作成資料や運用マニュアル(バイナリファイル)→ファイル間のマージはしないし、個人環境でのテストをする必要もない→ローカル領域にリポジトリを作る必要性がない。→Subversionを選択

Redmineと Subversionの認証連携について◦認証連携させないと、 Redmineのユーザが増えるたびに、リポジトリのユーザ管理も必要。

◦試行錯誤したノウハウを r-labsのWikiにまとめました。

Redmine+Subversionを使いこなす

Pre-commit hook◦ Subversionのコミットコメントに「 refs: #チケット番号」がないとコミット不可

◦これにより、「 No Ticket, No work」を実現する◦カスタマイズ例は、こちらのサイト参照

Post-commit hook◦ Post-commitで、 Subversionのコミットと同時に

Redmineに反映する◦「リポジトリ」タブをクリックしないと取り込まれない◦カスタマイズ例は、こちらのサイト参照

Redmine+Subversionを使いこなす

まとめ◦ユーザ管理を楽にするために、 Redmineと

Subversionの認証連携を設定

◦ No Ticket, No workを実現する手段として、Pre-commit hookを活用

◦ Subversionのコミットと同時に Redmineにデータを反映するために、 Post-commit hookを活用

Redmine+Subversionを使いこなす

カスタマイズ事例とノウハウ

Excelからのインポート

Redmine+ Subversionを使いこなそう

このプレゼンで伝えたかったこと

参考にしていただければ幸いです。ありがとうございました。