第14回:プライベートクラウドでプロジェクト管理サーバー
前回はプライベートクラウドの利用例の概要を紹介しましたが、今回からは実際の利用例としてプライベートクラウドにプロジェクト管理サーバーを建てて利用する例を紹介します。
■プロジェクト管理で利用する OSS
今回の連載で説明するプロジェクト管理サーバーではKanonというOSSを利用します。また開発者のコラボレーションツールとしてAsakusaSatelliteを利用します。
Kanon | AsakusaSatellite |
■Kanonについて
Kanonは、プロジェクト管理スィーツとして10万以上のダウンロード実績のある、「TracLightning」のLinux版という位置づけで開発されているソフトウェアで、Twitter上で徐々に注目を集めています。Kanonは、開発を行なう上で欠かせない機能を提供し、課題・バグ・要件を管理するチケットシステムとしてTracを、ソースコードを管理するバージョン管理システムとしてSubversion、Mercurial、Git、Bazaarを、継続的インテグレーションツールとしてJekinsをサポートするツールです。
Kanonの概要 |
これらのツールを組み合わせたり、より便利に拡張して利用するためのにプラグインを導入しようとすると、ある程度のノウハウと時間が必要となります。また、やっと導入しても、便利なプラグインに気が付かないまま利用してしまうことも多々あります。
Kanonはこれらのツール群とプロセスに合わせたお勧めのプラグインのインストールとセットアップを自動で行ってくれるため、サーバ管理やチケットシステムやCIなどの知識がなくても利用できるようになっています。また、付属のサンプルプロジェクトで一通りの機能を試せるようにもなっています。
Kanonは、開発プロセスとしてスクラムをベースとしたアジャイル開発をサポートするKanon Allegroとウォータフォールや日付による管理をサポートするKanon Naiagaraが提供されています。Allegroではバックログの管理やバーンダウンによる進捗管理を行うことができます。Naiagaraではガントチャートやレポート機能があります。
なお、本連載で説明するマシンイメージを利用する前にKanonを触ってみたい方はhttp://kanon.ultimania.org/trac/kanonにアクセスしてみてください。また、Kanonの詳細についてはhttp://kanon.ultimania.org/をご覧ください。
■AsakusaSatelliteについて
AsakusaSatelliteは開発者向けの機能を持ったリアルタイムチャットを実現するアプリケーションで、本連載執筆時点のバージョンでは以下の基本機能とプラグインが実装されています。
【基本機能】
・部屋作成(チャットルームの作成)
・チャット
・ファイルのアップロード
・デスクトップ通知
・全文検索
【プラグイン】
・Redmine連携
・コードハイライト
・汎用リンク
・Twitterリンク
・jenkinsリンク
なお、本連載で使用するマシンイメージは、Redmine連携のプラグインの代わりにKanonが使用しているTracと連携するプラグインを追加しています。
AsakusaSatelliteの詳細についてはhttp://codefirst.github.com/AsakusaSatellite/をご覧ください。
■プロジェクト管理サーバーのマシンイメージ
今回説明するプロジェクト管理サーバ用のマシンイメージは、マシンイメージ工房で公開しているものを利用します。以下のページにある「CentOS 5.5 x86_64 Kanon + AsakusaSatellite イメージ」をダウンロードしてください。
◇CentOS 5.5 x86_64 Kanon + AsakusaSatellite イメージ
http://eucalyptus.machine-image.com/index.php/list/centos-001/
ダウンロードしたイメージは以下のように実行して展開します。
# ダウンロードしたファイルを展開 # ファイル名末尾の YYYYMMDD はダウンロードしたファイル名に読み替えてください tar -xjf CentOS-5.5-x86_64-Kanon+AsakusaSatellite-YYYYMMDD.tar.bz2 |
Eucalyptusへの登録については本連載の第2回を参照頂くか、もしくは上記で展開したファイルに含まれているイメージ登録用のスクリプトを以下のように実行してください。
# 登録用スクリプトを実行 (事前に eucarc を読み込んでおくこと) # ディレクトリ名末尾の YYYYMMDD は展開されたディレクトリ名に読み替えてください cd CentOS-5.5-x86_64-Kanon+AsakusaSatellite-YYYYMMDD/ ./register.sh |
登録したイメージを用いたインスタンスの起動などについては、本連載の第2回を参照してください。
■Kanonのプロジェクトを作成する方法
Kanonのプロジェクトを作成するにはインスタンスにSSHでログインし、以下のように実行します。
# kanon-create-project コマンドを実行 [root@euca-192-168-0-100 ~]# /opt/kanon/bin/kanon-create-project ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ Kanon プロジェクト作成ツール (C)2011 Kanon Project ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ このツールはKanonのプロジェクトを作成するツールです。 ガイドに従って、情報を入力するとプロジェクトを作成することができます。 --------------------------------------------------------------------- プロジェクト名を入力してください。 プロジェクト名には、空白を含めちゃだめだよ。 プロジェクト名: cloudon ← プロジェクト名を入力 リポジトリのタイプを入力してください。 * svn : Subversion * hg : Mercurial * bzr : Bazaar * git : Git * (なし) : バージョン管理システムを使いません リポジトリタイプ: hg ← バージョン管理システムを選択 リポジトリにMercurialが選択されました。 テンプレートを入力してください。現在利用できるテンプレートは下記の通りです。 * agile 通称: Kanon Allegro アジャイル開発用テンプレートです。バックログの管理や バーンダウンチャートでのタスクの管理に利用します。 * default 通称: Kanon Niagara 標準のテンプレートです。課題管理・簡易バグ管理・ ガントチャートやカレンダーでのタスク管理に利用します。 以下から選んでください。 agile default テンプレート: agile ← テンプレートを選択 agile プロジェクト名: cloudon リポジトリタイプ: hg テンプレート: agile 上記のプロジェクトを本当に作成していいですか(y/n)y ← 上記で OK なら y を入力 Creating and Initializing Project Installing default wiki pages (省略) You may want to upgrade the Trac documentation now by running: trac-admin /var/opt/kanon/trac/cloudon wiki upgrade Resyncing repository history for (default)... 0 revisions cached. Done. プロジェクトのセットアップは終わりしました。 下記のURLでアクセスしてください。 (リポジトリタイプがbazaarの場合、リポジトリURLにtrunkを付けるとtrunkにアクセスできます) プロジェクト管理 : http://[サーバ名]/trac/cloudon リポジトリ : http://[サーバ名]/hg/cloudon # ↑以下のように表示されたら完了です |
作成したプロジェクトを利用するには、実行結果に表示された URL にブラウザでアクセスしてください。
例えば、インスタンスのPublicIPが192.0.2.100の場合、プロジェクト管理を利用する場合はhttp://192.0.2.100/trac/cloudonにアクセスし、リポジトリを利用する場合はhttp://192.0.2.100/hg/cloudonにアクセスします。
なお、AsakusaSatelliteを利用する場合はhttp://192.0.2.100/asにアクセスします。
■KanonとAsakusaSatelliteの連携
今回説明するマシンイメージのAsakusaSatelliteにはKanonのTracに対応したプラグインを有効にしています。「連携」と表現できるほどの連携ではありませんが、AsakusaSatelliteに入力したメッセージ中に以下のTrac表記があれば「http://[サーバ]/trac/[プロジェクト名]/」配下へのリンクへ変換します。
なお、リンク中の「プロジェクト名」にはチャットルームの名前を使用するようにしていますので、この機能が不要な場合は後述する方法で「Trac連携プラグインKanon版」を無効にしてください。
# チケットへのリンク #1 ticket:1 # チェンジセットへのリンク [1] changeset:1 # レポートへのリンク {1} report:1 # Wikiページへのリンク [wiki:Wikiページ名] [wiki:Wikiページ名 文字列] |
■Trac連携プラグインについて
前述した「Trac連携プラグインKanon版」の機能を無効にする場合はインスタンスにログインし、/var/opt/AsakusaSatellite/config/filter.yml に記述してある以下の行を削除してください。
- name: kanon_link |
「Trac連携プラグインKanon版」ではなく「Trac連携プラグイン」を有効にする場合は、前述の変更(「Trac連携プラグインKanon版」の無効化)に加えて、以下を追記してください。
- name: trac_link roots: http://trac.edgewall.org/ # ← 連携するTracのURLを指定 |
「Trac連携プラグインKanon版」や「Trac連携プラグイン」のどちらも使用せず、AsakusaSatelliteに付属する「Redmine連携プラグイン」を有効にする場合は、前述の変更(「Trac連携プラグインKanon版」の無効化)に加えて、以下を追記してください。
- name: redmine_ticket_link roots: http://www.redmine.org/ # ← 連携するRedmineのURLを指定 |
なお、上記を変更した場合は httpd を再起動してください。
service httpd restart |
■次回はこれらのアプリケーションを利用した開発について
次回は、この2つのアプリケーションの簡単な利用方法や利用例について説明します。
羽深 修 | Eucalyptus歴はまだ1年ですが、周囲からはEucalyptus中毒と勘違いされているようです。Japan Eucalyptus User Groupの活動に参加し、オープンソースカンファレンスでネタなどを披露しています。度々Eucalyptusへのパッチも書いてます。ちなみに仕事ではCentOS + Xenという環境でEucalyptusを利用していますが、自宅のEucalyptus環境はGentoo Linux + KVMで動かしています。 |
志田 隆弘 | 主にEucalyptusやクラウドとはあまり関係のない分野でちょこちょこと活動していました。Eucalyptusはバージョン 1.3の頃からいじり始め、かれこれ2年近くEucalyptusに浸かった生活をしています。Eucalyptus 1.4が出たタイミングで、Tanacasinoという名前のGUIクライアントを作ったりしていました。最新のEucalyptusで動作するので、ぜひ使ってみてください。 |
田中 智文 | 志田さんとともに初期の頃からEucalyptusの調査・検証・使用してきました。志田さんの作成したTanacasinoのメンテナンスと機能拡張を行っています。新婚ほやほやなので家でのハック活動時間が少ないですが、Walrus Clientを作ってみたりbotoを使ってEucalyptusを操作して遊んでいます。 |