:::: MENU ::::

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

Pocket

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を試してみてはどうでしょう。

Pocket


So, what do you think ?