:::: MENU ::::

Apache BloodhoundをCentOS6にインストールする

ApacheBloodhound

Trac をマルチプロダクト対応にして、リッチな UI を備えて、
インストールも簡単にしたらしい Bloodhound を入れてみました。

公式インストールマニュアル

付属の README と公式の wiki ではインストール方法が若干違っていて、
分かりにくいのでインストール方法をまとめておく。

フォルダ構成

こんな構成で入れていこうと思う

/usr/local/bloodhound/ bloodhoundの実態を置くところ
/var/repos/bloodhound/ Tracプロジェクトの作成先
/var/www/bloodhound/  Webから参照可能なものを置くところ

インストール手順

pip と virtualenv が必要なのでインストール

# curl -kL https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python
# pip install virtualenv virtualenvwrapper
# virtualenv --system-site-packages bloodhound

bloodhound 実行ユーザが必要なので作成
本体を置くところを作って所有者を変更

# useradd --system -m bloodhound
# mkdir /usr/local/bloodhound
# chown -R bloodhound:bloodhound /usr/local/bloodhound
# mkdir /var/www/bloodhound
# chown -R bloodhound:bloodhound /var/www/bloodhound/

bloodhound ユーザになって公式から本体をダウンロード

# su bloodhound
$ cd
$ wget http://ftp.yz.yamagata-u.ac.jp/pub/network/apache/bloodhound/apache-bloodhound-0.7.tar.gz
$ tar xvfz apache-bloodhound-0.7.tar.gz
$ cd apache-bloodhound-0.7/installer/
$ virtualenv /usr/local/bloodhound

簡単なので DB は SQLite にする。
引数で Trac のプロジェクト作成先とプロジェクト名を指定。
インストールにちょっと時間がかかるけど、これでプロジェクト作成完了。

$ source /usr/local/bloodhound/bin/activate
(bloodhound)$ pip install -r requirements.txt
(bloodhound)$ python bloodhound_setup.py --help
Usage: bloodhound_setup.py [options]

Options:
-h, --help            show this help message and exit
--project=PROJECT     Set the top project name
--source_directory=SOURCEDIR
Specify root source code directory
--environments_directory=ENVSDIR
Set the directory to contain environments
-d DBTYPE, --database-type=DBTYPE
Specify as either 'postgres' or 'sqlite'
--database-string=DBSTRING
Advanced: provide a custom database string, overriding
other database options
--database-name=DBNAME
Specify the database name
-u DBUSER, --user=DBUSER
Specify the db user (required for postgres)
-p DBPASS, --password=DBPASS
Specify the db password (option for postgres)
--database-host=DBHOST
Specify the database host (optional for postgres)
--database-port=DBPORT
Specify the database port (optional for postgres)
--admin-password=ADMINPASS
create an admin user in an htdigest file
--digest-realm=REALM  authentication realm for htdigest file
--admin-user=ADMINUSER
admin user name for htdigest file
--digest-file=DIGESTFILE
filename for the htdigest file
--repository-type=REPO_TYPE
specify the repository type -
--repository-path=REPO_PATH
specify the repository type
--default-product-prefix=DEFAULT_PRODUCT_PREFIX
Specify prefix for default product (defaults to @

(bloodhound)$ python bloodhound_setup.py --environments_directory=/var/repos/bloodhound/ --project=test01

This installer is able to install Apache Bloodhound with either SQLite or
PostgreSQL databases. SQLite is an easier option for installing Bloodhound as
SQLite is usually built into Python and also requires no special permissions to
run. However, PostgreSQL is generally expected to be more robust for production
use.
Do you want to install to a PostgreSQL database [Y/n]: n

Please supply a username for the admin user [admin]: admin
Enter a new password for "admin":
Please reenter the password:
プロジェクトの生成と初期化

---------------------------------------------------------------------
Trac Environment 'test01' ができました。

今後、この環境の設定をする場合は、次のファイルを利用します。

/var/repos/bloodhound/test01/conf/trac.ini

新しいプロジェクトを試しに実行してみたい場合は、スタンドアロンウェブ
サーバ `tracd` を試してみてください。

tracd --port 8000 /var/repos/bloodhound/test01

それから、ブラウザで http://localhost:8000/test01
にアクセスします。インストールしたバージョンに合わせた今後のセット
アップ情報などが含まれたドキュメントが閲覧できます。(例えばウェブサー
バで公開する手順など。)

最新のドキュメントは、プロジェクトのウェブサイトから入手できます。

http://trac.edgewall.org/

Congratulations!

Adding TRAC_ADMIN permissions to the admin user admin
Running upgrades
Your environment has been upgraded with the default [bhrelations_links] configuration.
アップグレードが終了しました。

次のコマンドを実行すると Trac のドキュメントをアップグレードできます:

trac-admin /var/repos/bloodhound/test03 wiki upgrade

Running wiki upgrades
Running wiki Bloodhound upgrades
Loading default product wiki
Running default product wiki upgrades
Running default product wiki Bloodhound upgrades

You can now start Bloodhound by running:

tracd --port=8000 /var/repos/bloodhound/test01

And point your browser at http://localhost:8000/test01

(bloodhound)$ trac-admin /var/repos/bloodhound/test01/ deploy /var/www/bloodhound/
(bloodhound)$ nohup tracd --port=8000 /var/repos/bloodhound/test01/ > /var/log/bloodhound.log 2> /var/log/bloodhound_err.log < /dev/null &

8000 番ポートで立ち上げたので、Apache の conf を書いておく。

# vi /usr/local/apache2/conf/extra/httpd-vhosts.conf
<VirtualHost *:8000>
ErrorLog "logs/bh-error_log"
CustomLog "logs/bh-access_log" combined env=!nolog
WSGIDaemonProcess bloodhound_tracker user=bloodhound python-path=/usr/local/bloodhound/lib/python2.6/site-packages
WSGIScriptAlias / /var/www/bloodhound/cgi-bin/trac.wsgi
<Directory /var/www/bloodhound/cgi-bin>
WSGIProcessGroup bloodhound_tracker
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
<LocationMatch "/[^/]+/login">
AuthType Digest
AuthName "Bloodhound"
AuthUserFile /var/www/.digestpass
Require valid-user
</LocationMatch>
</VirtualHost>

Apache を再起動して、/test01/にアクセスして以下のような画面がでれば完了!

ApacheBloodhoundProject

マルチプロダクトについて

マルチプロダクトという概念で、マルチプロジェクトとはちょっと違う。

ApacheBloodhoundProjectStructure

上が純正 Trac で下が Bloodhound。
Trac 内にプロダクトという形で複数の Wiki や Ticket が管理できるようになっている。

ただユーザ管理まではできていないので、
プロダクト毎に閲覧や編集権限を操作することはできないみたい。

なので、その権限を区切りたいときは純正 Trac と同様に、
Trac Project を横に並べる形で管理する必要がある。

触ってみた感想

複数プロジェクトを横断してのチケットやマイルストーンは、
あったらあったで嬉しいが、実はそれほど頻繁に使うものでもない。
(人によってはあるとは思うが)

別プロジェクトでもリポジトリが共通だったり、
プロダクトで分割できれば、たいてい事足りたりする。
なので、いままでサブプロジェクトとして新たに Trac 作っていたようなものは、
すべてプロダクトの作成で賄えるのは嬉しいところ。

ベースは Trac そのもので、おそらくプラグインもそのまま使えそう。
チケット作成画面に行かなくてもチケットを作れたりと bloodhound テーマは結構よさげ。

いまさら Trac を新たに使おうって人は少ないかもしれないけど、
Trac1.1 で予定しているマルチプロジェクト機能を待てない人は、
bloodhound を試してみてはどうでしょう。