Tracとはなんぞや

プロジェクト管理ツール。 Wiki + Subversion連携 + チケットシステム(BTS + 進捗管理)

なにがうれしいの

ブラウザ上でオールインワンのプロジェクト管理。

  • Wikiでドキュメント管理
  • Subversionリポジトリのブラウズができてチェンジセットが見やすくてソースも見られる。
  • バグやタスクをチケットとして発行して管理。BTSとして使える。フィールドカスタマイズも自由。
  • マイルストーンごとにチケットを登録しておくと進捗見える化
  • RSSやメールでチケットの更新をお知らせ
  • さらにプラグイン機構で機能追加可能

うれしい。

なにがめんどくさいの

Tracの暗黒面。

  • 導入が面倒。RH7.3とか古いディストリに入れようとすると泥沼。最近のディストリなら比較的楽。
  • 多機能ゆえの業。導入した直後に何していいのかわからん。
  • あー、また別のWiki記法覚えないといかんのか。(pukiwikiともhikiとも違う)

だが使いこなすほどになじむ、なじむぞ!(たぶん)

なにはともあれつかってみよう

百聞は一見にしかず。 インストールしてログインするところまで。

  • 環境準備
  • Trac日本語版のインストール
  • Subversionのリポジトリを作る
  • プロジェクト環境を作る
  • ブラウザからアクセス
  • 認証の設定
  • ユーザ権限の設定
  • TracWebAdminを入れる

なお、今回入れるのは0.9.6。 これ以前のバージョンでは以下の記述は当てはまらない場合があるので注意。

環境準備

Tracを動かすには以下のものが必要

  • Python
  • Subvertion
  • Clearsilver(テンプレートエンジン)
  • SQLite or PostgreSQL

以下は手元のCentOS 4.3における手順

clearsilverだけ入ってなかったので適当にRPMをひろってきて入れる。

mkdir ~/trac_tmp
cd ~/trac_tmp
wget http://dag.wieers.com/packages/clearsilver/python-clearsilver-0.10.1-1.2.el4.rf.i386.rpm
wget http://dag.wieers.com/packages/clearsilver/clearsilver-0.10.1-1.2.el4.rf.i386.rpm
sudo rpm -ivh python-clearsilver-0.10.1-1.2.el4.rf.i386.rpm clearsilver-0.10.1-1.2.el4.rf.i386.rpm

もちろん他のソフトウェアも入ってなかったら入れる必要あり TracのRPMも落ちているが、これはあとで日本語版を入れるので入れない。

日本語版のインストール

日本語化されたものがあるので、最初からそれをインストールする。

インタアクト Trac日本語版 http://www.i-act.co.jp/project/products/products.html

wget http://www.i-act.co.jp/project/products/downloads/trac-0.9.6-ja-1.zip
unzip trac-0.9.6-ja-1.zip
cd trac-0.9.6-ja-1
sudo python setup.py install

完了。楽ちん。

ちなみにすでに前のバージョンのTracが入っている場合はPythonのsite-packages内のTracのディレクトリを全削除してから再インストールがよろしい、とTrac付属のドキュメントに書いてあった。 くわしくはUPGRADEというテキストファイルを読むべし。

Subversionのリポジトリ作る

Tracのプロジェクト環境を作成するためにリポジトリが必要なので作っておく。 もちろん既存のリポジトリがあればそれを使ってよい。

svnadmin create /home/akahige/tracdemorepos

ちょっと罠

同じサーバ上にリポジトリがないと作成できないというちょっと罠。 本リポジトリと別のサーバにTracをいれたければ、SVKでTracのあるサーバにリポジトリを同期するとよろしいでしょう。 ただし本リポジトリとSVKで同期を取ったリポジトリのリビジョン番号はずれてしまいますが。

プロジェクト環境を作る

いよいよブラウザからアクセスできる環境を作る。

trac-admin /home/akahige/tracdemo/ initenv

以下の情報を聞かれるので入力していく

  • プロジェクト名
    • Trac Demo(てきとうに)
  • DB
    • ./db/sqlite.db(デフォルトはSQLiteを使うので考えがなければそのままで)
  • Subversionのリポジトリ
    • /home/akahige/tracdemorepos(さっき作ったやつかもともとあるリポジトリのパス)

これで完了。 入力ミスなどで失敗したらおもむろに/home/akahige/tracdemoをいったん削除してから再実行。

ちなみにプロジェクト環境はプロジェクトごとに何個でも作れる。

ブラウザからアクセス

いよいよブラウザからアクセス。

ここは手っ取り早くTrac用Webサーバを起動するが、Apacheやlighttpd等の上で動かすこともできる(広く公開するならそっちで動かす方がいい)

tracd -p 8000 /home/akahige/tracdemo/

起動したらブラウザからアクセス。

http://192.168.1.145:8000/

これでとりあえずTracが使えるようになった。 conf/trac.iniの内容を編集することでカスタマイズ等も可。

とりあえずプロジェクトのWikiでTracのドキュメントを読んでみたりするとよいでしょう。 日本語版を入れたのでドキュメントも日本語になっている。ワーイ。

でも実はまだセットアップは終わってなかったりする。 CMのあとまだまだ続きます。

認証の設定

TracはHTTP認証でユーザを判別するのでその設定する。 この設定をしなくてもTracを使うことはできるが、誰が何をしたのか履歴に残すためにやっておいたほうがいい。 あとユーザごとに権限設定もできるので。

認証にはダイジェスト認証も使えるようだけど、ここではとりあえずベーシック認証でやる。

普通にパスワードファイルを作り

htpasswd -c /home/akahige/tracdemo/.htpasswd akahige

そのバスワードファイルを読みこむようにtracdを起動しなおす。このとき「,」の前後にスペースとかいれちゃだめなのがちょっと罠。

tracd --basic-auth tracdemo,/home/akahige/tracdemo/.htpasswd,tracninshou -p 8000 -d /home/akahige/tracdemo

-dオプション付きで起動したので今度はデーモンとして動作。 その他のオプションに関してはtracd -hしてみませう。

さて再度ブラウザからアクセス。

http://192.168.1.145:8000/

ここでヘッダのログインのリンクを踏むとダイアログが開いてベーシック認証となる。

これでユーザの認証ができるようになった。

ユーザ権限の設定

とりあえずさっき.htpasswdに追加したユーザに管理者権限を与える。

trac-admin /home/akahige/tracdemo/ permission add akahige TRAC_ADMIN

trac-adminはまあ、こういった管理一般に使うコマンドなわけですね。 一度ためしにtrac-admin -hとかしてみるとよいでしょう。

ともかくこれでマイルストーンの編集とか管理者のみにできる作業を行うことができるようになった。

TracWebAdmin入れる

さらに設定をコマンドラインからやるのめんどいよという向きのために、設定をやりやすくするためにTracの設定をウェブベースで行うことのできるプラグインを入れてみる。

まずはプラグインを入れる準備。やってることの意味はドキュメントを読んでください。

wget http://peak.telecommunity.com/dist/ez_setup.py
sudo python ez_setup.py

お次が件のプラグイン。展開はしないで拡張子をeggに変えてpythonのsite-packagesに入れる。

WebAdmin - The Trac Project - Trac http://trac.edgewall.org/wiki/WebAdmin

wget http://trac.edgewall.org/attachment/wiki/WebAdmin/TracWebAdmin-0.1.1dev_r2765-py2.3.egg.zip?format=raw
mv TracWebAdmin-0.1.1dev_r2765-py2.3.egg.zip?format=raw TracWebAdmin-0.1.1dev_r2765-py2.3.egg
sudo cp TracWebAdmin-0.1.1dev_r2765-py2.3.egg /usr/lib/python2.3/site-packages/

入れたらtrac.iniの末尾に以下の業を追加。

[components] webadmin.* = enabled

これで管理者でログインしている場合はAdminタブが出てTracに関する設定をブラウザ上からいろいろできるようになる。 先ほどのユーザ権限の設定なんかももうコマンドラインを叩く必要はない。

セキュリティ上の注意

作成したTracのプロジェクト環境を外部公開する場合は注意。ほかの人にWebAdminを使われないように! 必要なければこのプラグインは使わないほうがセキュリティの観点からは好ましい。 内部利用のみであればいれたほうがたぶん幸せ。

利便性とセキュリティのトレードオフ。

以上でひととおりのセットアップは終わり。

お疲れ様でした。

運用してみよう

さいしょになにする

  • タイムラインを見てスゲーと思う
  • ソースが見られることを確認して満足する
  • Wikiに落書きをする
  • 「テスト」というタイトルのチケットを登録する
  • マイルストーンの設定ができなくて首をかしげる
  • 管理者権限でログインしたら設定できることを知る
  • ユーザ権限の設定
  • マイルストーンにチケットの解決状況が反映されるのを見てご満悦

すみません、これは自分の「さいしょになにした」でした。

以下一般的な運用。

  • Wikiに仕様や気になることのメモを
  • 新しいタスクがやってきたらチケットに登録
  • いまいましいバグが発生したらチケットに登録
  • チケットごとに担当を割り当てて対応
  • コンポーネントを設定して関連するチケットをひとまとまりに
  • マイルストーンを設定してチケットをまとめる
  • チケットが順調に解決されていく様をマイルストーンの表示で見てニヤつく
  • チケットの解決が滞っている様をマイルストーンの表示で見て不安におののく

まあ、いろいろいじってみるべし。

権限の設定

特定の人以外にWikiの編集とかその他いろいろさせたくないとか言うときに。

WebAdminからできますよ。ワーイ。

チケットの項目のカスタマイズ

柔軟なカスタマイズで運用にぴったりフィットできますよ。きっと。

既存項目の選択リストをいじる

英語になってるものを日本語にしたりとか。

WebAdminからできますよ。ワーイ。

既存項目を隠す

選択リストのアイテムを全部消してしまえば非表示になりますよ。

WebAdminからできますよ。ワーイ。

カスタム項目を追加

trac.iniをエディタでいじります。 詳細はドキュメント参照。

残念ながらWebAdminからはできませんよ。できたらいいのにな。

そのうちだれか偉い人のおかげでできるようになるかもしれない。

インタフェースのカスタマイズ

アイコンとかデザインとかカスタマイズしたいですよ!

基本的に画像の変更やスタイルシートの変更で。 テンプレートをいじれば何でもできるが、バージョンアップに追随するのに苦労しそうなのでオススメではない。

他のBTSから乗り換えたいですよ!

BugzzilaとかMantisからだと移行スクリプトがあるぽいです。 所詮はDB間のデータ移行ですからね。

だれか影舞から移行するスクリプトをつくってください(他力本願)

ドキュメント読む

まとまったものがあるので読みましょう。

小一時間であなたもTrac Masterです。

まだ自分は全部読んでませんすみません。

以上、駆け足終了。

  • このエントリーをはてなブックマークに追加
Feedforce Developer Blog

新しいブログへ移行しました!こちらもよろしくお願いします。