オープンソースのPaaSソフトウェア CloudFoundry の技術情報やイベント告知などを掲載します

2015-07-10

KADOS を Cloud Foundry で動かす

本日の第27回「Cloud Foundry 百日行」は KADOS です。
公式ホームページには”KADOS is web-based tool for managing SCRUM projects and other Agile projects”と書かれており、スクラム開発やアジャイル開発に用いられるカンバンをWEBのダッシュボードで提供してくれるアプリです。
アプリはPHPとMySQLで構成されており、第10回の記事で紹介した方法で簡単に利用が可能です。
なお事前にお知らせしておくと”Kados is available in French, English,Spanish and soon German version”となっており、ヨーロッパ圏向けのサポートとなっているので、一部言語ではメニューが文字化けを起こします。チケットなどの入力は日本語でも動作させることが出来ましたので実行上はEnglishで進めれば普通に利用は可能です。

基本情報

デプロイ

手順
  • 0) ソースコードの取得
  • 1) アプリの起動
  • 2) 動作確認

ソースコードの取得

今回は公式のホームページからzipファイルをダウンロードし解凍します。
解凍するとnew_installupgrade用のディレクトリが現れますので今回はnew_installを選びましょう。
$ wget http://downloads.sourceforge.net/project/kados/kados_r8-SilverBird.zip
$ unzip kados_r8-SilverBird.zip -d kados_work
$ rm kados_r8-SilverBird.zip
$ cd kados_work
$ ls
kados_changelog_r8.txt  new_install_r8  upgrade_from_v1.7.1_to_r8
$ cd new_install_r8/
$ ls
install_EN.txt install_FR.txt kados  licence sql
とりあえずEnglish版のインストールマニュアルがあるので確認します。
手順はこんな感じです。
  • 0) DBの接続情報を準備(サポートはMySQL database version 5)
  • 1) /kadosディレクトリをWebServerにrootか/kadosとして配置
  • 2) SQLスクリプトをMySQL databaseに実行
  • 3) confフォルダを開く
  • 4) connect.conf にパラメータを設定(MySQLの接続情報)
  • 5) サイトにアクセスしてadmin/adminでログイン
  • 6) メールでユーザのアクティベーションするなら以下を設定(以下略)
  • 7) ヘルプは ドキュメント を参照、あるいは http://www.kados.info/en へ問い合わせ
なお今回は6のメール連携は利用しない方法で進めます。
機会があればそちらも試してみます。

アプリの起動

手順通りcf pushする対象のkadosディレクトリに移動します。
そして次の手順に備えて--no-startオプションをつけてcf pushしてしまいましょう。
$ cd kados
$ cf push kados --no-start
あとはいつも通りMySQLをServiceで準備しましょう。
$ cf marketplace

service      plans                     description   
p-mysql      100mb-dev, 1gb-dev        A MySQL service for application development and testing   

$ cf create-service p-mysql 100mb-dev kados_db
$ cf bind-service kados kados_db
$ cf env kados
System-Provided:
{
 "VCAP_SERVICES": {
  "p-mysql": [
   {
    "credentials": {
     "hostname": "10.244.1.18",
     "jdbcUrl": "jdbc:mysql://10.244.1.18:3306/cf_6eafb097_998c_4d32_beb1_96b1a6bc0db4?user=yPoaMwFiVm4kjatg\u0026password=9Y6e4ZAhaRbIWozF",
     "name": "cf_6eafb097_998c_4d32_beb1_96b1a6bc0db4",
     "password": "9Y6e4ZAhaRbIWozF",
     "port": 3306,
     "uri": "mysql://yPoaMwFiVm4kjatg:9Y6e4ZAhaRbIWozF@10.244.1.18:3306/cf_6eafb097_998c_4d32_beb1_96b1a6bc0db4?reconnect=true",
     "username": "yPoaMwFiVm4kjatg"
    },
    "label": "p-mysql",
    "name": "kados_db",
    "plan": "100mb-dev",
    "tags": [
     "mysql"
    ]
   }
  ]
 }
}
:

次にcf pushしたkadosディレクトリにあるconf/connect.confを編集します。
編集内容は
<?php
 
/* -----------*********  Base de donnees   ***********-------*/
// param?tres de connexion
  $PARAM_host="10.244.1.18";
  $PARAM_db="cf_6eafb097_998c_4d32_beb1_96b1a6bc0db4";
  $PARAM_user="vUWLGrGDkn8aDT66";
  $PARAM_password="3NZE7vIOAH50DTPc";
  $PARAM_charset='utf8';
?>
または
<?php
 
/* -----------*********  Base de donnees   ***********-------*/
// paramètres de connexion
  $services = getenv("VCAP_SERVICES");
  $services_json = json_decode($services,true);
  $mysql_config = $services_json["p-mysql"][0]["credentials"];
 
  $PARAM_host= $mysql_config["hostname"];
  $PARAM_db= $mysql_config["name"];
  $PARAM_user= $mysql_config["username"];
  $PARAM_password= $mysql_config["password"];
  $PARAM_charset='utf8';
?>
になります。
あとはcf pushをするだけ。
おっとその前にSQLスクリプトの実行を忘れていました。あぶない、あぶない。
このSQLスクリプトはkadosディレクトリの1つ上のsqlディレクトリの中にcreate_database_r8.sqlのファイル名で準備されています。
今回は以前紹介した同じPHPアプリの第17回 SQL Buddyを使いました。
  • デプロイ手順は過去の記事を確認して戴きたいのですが、そこで使われる外部のphp-buildpackはデフォルトサポートバージョンが変更されておりますので、エラーの出る方はtag v3.2.2を指定して利用してみて下さい(過去の百日行記事で、staticfile-buildpackを使うアプリでも同じような事象がありました)。
  • SQLスクリプトのインポートの際には1箇所insert into framework_parameters_values_listsのコマンドが長過ぎてエラーになるので中盤あたりでコマンドを2つに分割して下さい。
スクリプト変更方法
該当コマンドの中盤あたりで
),(

); \n insert into `framework_parameters_values_lists`(`parameter_tag_id_fk`,`parameter_value_label`,`parameter_value`) values (

に置き換えます。大体コマンドが半分くらいになれば問題ないと思います。
SQLスクリプトの修正が終われば、それをSQL Buddyでデータベースを指定して上部メニューの”Import” の機能を使って読み込ませます。
エラーまたはアプリがダンマリにならなければ成功です。
ではあらためてcf pushしましょう。
$ cf push kados

:
requested state: started
instances: 1/1
usage: 256M x 1 instances
urls: kados.10.244.0.34.xip.io
last uploaded: Thu Jul 2 07:54:12 +0000 2015
stack: lucid64
 
     state     since                    cpu    memory          disk      details   
#0   running   2015-07-02 04:54:55 PM   0.0%   96.2M of 256M   0 of 1G      
デプロイ完了です。

動作確認

URL kados.10.244.0.34.xip.io にアクセスしてみます。
ログインはID admin/PASS admin
ログイン出来ればDB接続も問題なく出来ています。
文字化けしている場合は左上のイギリスの国旗を選んで英語に変更。

ユーザ追加やプロジェクト作成などいろいろ試して見て下さい。

今回使用したソフトウェア