「Cloud Foundry 百日行」第54日目、本日取り上げるアプリは、プロジェクト管理ツール WebCollab です。
この百日行シリーズでは、これまで既にいくつかのプロジェクト管理ツールを取り上げてきました。主なところでは、 Redmine 。また、 KADOS というツールも便利でしたね。
今回の WebCollab の特徴は、手軽に使えるところ。数ヶ月単位の開発プロジェクトで無くても、どこの会社でも、日常大小様々な案件やタスクが進行しています。それらを手軽に管理して見える化したい。そんな時に使えそうなのが WebCollab です。
基本情報
手順は以下の通りです。
- 1) ソースコードの取得
- 2) 事前準備
- 3) アプリのデプロイ
- 4) セットアップ
- 5) 動作確認
1. ソースコードの取得
まずはソースコードの取得から。
~$ wget http://sourceforge.net/projects/webcollab/files/webcollab/webcollab-3.43%20%28Harrison%20130%29/webcollab-3.43.tar.gz
~$ tar zxvf webcollab-3.43.tar.gz
~$ cd webcollab-3.43/
~/webcollab-3.43$ ls
admin calendar.php css files.php icalendar.php lang path.php setup.php update.php
admin.php CHANGELOG database forum images LICENSE RELEASE_NOTES taskgroups usergroups
archive config db forum.php includes logout.php rss taskgroups.php usergroups.php
archive.php contacts docs help index.php main.php setup tasks users
calendar contacts.php files icalendar js path_config.php setup_handler.php tasks.php users.php
2. 事前準備
2.1 PHP拡張モジュール追加
環境要件 に従い、 mbstring
と PDO
の各PHP拡張モジュールの対応を行います。
同じ対応が、過去の百日行記事、例えば 第44日目の Anchor CMS 等で紹介されていますので、適宜参考にしてください。
~/webcollab-3.43$ mkdir .bp-config
~/webcollab-3.43$ vi .bp-config/options.json
~/webcollab-3.43$ cat .bp-config/options.json
{
"PHP_EXTENSIONS": ["pdo", "pdo_mysql", "mbstring"]
}
2.2 ファイル書き込み権限設定
INSTALLATION に従い、 config/config.php
の書き込み権限を設定します。
~/webcollab-3.43$ ll config/config.php
-rw-rw-r-- 1 ueno ueno 7627 Feb 17 2015 config/config.php
~/webcollab-3.43$ chmod 666 config/config.php
~/webcollab-3.43$ ll config/config.php
-rw-rw-rw- 1 ueno ueno 7627 Feb 17 2015 config/config.php
2.3 MySQL サービスの準備
MySQL サービスとバインドするために、いつも通りにまずは --no-start
で アプリを push。
~/webcollab-3.43$ cf push webcol --no-start
cf marketplace
で使用できるサービスを確認し、
~/webcollab-3.43$ cf marketplace
Getting services from marketplace in org ueno / space test1 as ueno...
OK
service plans description
Mongo DB Default Mongo Plan* A simple mongo implementation
PostgreSQL Basic PostgreSQL Plan* PostgreSQL on shared instance.
p-mysql 100mb, 1gb MySQL databases on demand
p-redis shared-vm, dedicated-vm Redis service to provide a key-value store
:
MySQL サービスを作成。
~/webcollab-3.43$ cf create-service p-mysql 100mb wc-msql
そして、アプリと MySQL サービスをバインド。
~/webcollab-3.43$ cf bind-service webcol wc-msql
3. アプリのデプロイ
サービスとバインドしたアプリを再起動することで、デプロイが開始されます。
~/webcollab-3.43$ cf restart webcol
Starting app webcol in org ueno / space test1 as ueno...
-----> Downloaded app package (756K)
-------> Buildpack version 3.2.1
:
-----> Uploading droplet (18M)
1 of 1 instances running
App started
OK
App webcol was started using this command `$HOME/.bp/bin/start`
Showing health and status for app webcol in org ueno / space test1 as ueno...
OK
requested state: started
instances: 1/1
usage: 256M x 1 instances
urls: webcol.10.244.0.34.xip.io
last uploaded: Fri Aug 28 07:20:46 UTC 2015
stack: cflinuxfs2
buildpack: PHP
state since cpu memory disk details
#0 running 2015-08-28 04:21:30 PM 1.7% 35.3M of 256M 0 of 1G
無事、アプリが起動しました。
4. セットアップ
アプリが起動しましたが、 INSTALLATION に従って、まずはインストーラの URL http://webcol.10.244.0.34.xip.io/setup.php
にアクセス。
言語の選択に日本語は無いので、英語のままで Submit
をクリック。
Do you wish to create a database now?
と聞かれているので、Yes
をクリック。
すると、DB 登録画面へ。
DB 接続のため、まず環境変数から各情報を取得。
~/webcollab-3.43$ cf env webcol
Getting env variables for app webcol in org ueno / space test1 as ueno...
OK
System-Provided:
{
"VCAP_SERVICES": {
"p-mysql": [
{
"credentials": {
"hostname": "10.244.7.6",
"jdbcUrl": "jdbc:mysql://10.244.7.6:3306/cf_47617b31_0735_4bef_b3ba_0d6dc1f166a3?user=k4qzUjdrmMmJKw6V\u0026password=BtBKOxxJjA3R2Hyf",
"name": "cf_47617b31_0735_4bef_b3ba_0d6dc1f166a3",
"password": "BtBKOxxJjA3R2Hyf",
"port": 3306,
"uri": "mysql://k4qzUjdrmMmJKw6V:BtBKOxxJjA3R2Hyf@10.244.7.6:3306/cf_47617b31_0735_4bef_b3ba_0d6dc1f166a3?reconnect=true",
"username": "k4qzUjdrmMmJKw6V"
},
"label": "p-mysql",
"name": "wc-msql",
"plan": "100mb",
"tags": [
"mysql"
]
}
]
}
}
:
そして、登録画面内に下記を投入し、Submit
をクリック。
Your database name
→ cf_47617b31_0735_4bef_b3ba_0d6dc1f166a3
Database user
→ k4qzUjdrmMmJKw6V
Database password
→ BtBKOxxJjA3R2Hyf
Database host
→ 10.244.7.6
Database type
→ mysql
DB 登録は成功したので、Continue to configuration
をクリックし、設定画面へ。
ここでは以下を設定し、Submit
をクリック。
Language
→ Japanese
Timezone
→ GMT +9000
Use email?
→ □
(今回は使わないからチェックを外す)。
確認画面が表示。
表示された Warning は本質的なものではないので、Write Data to Config File
をクリック。
Success
しました。
Continue to next page
クリックし、Admin の ID/Passwd 設定画面へ。
適宜入力して Submit
。
Finish
をクリック。
ログイン画面が出るので、Admin で入り、ホーム画面へ。
左の Users
→ Add
から、一般ユーザを作成。
これでセットアップは全て完了しましたので、次は作成した一般ユーザでログインしてアプリの動作を確認していきます。
5. 動作確認
先ほど作成したユーザアカウントでログイン。
ではまず、プロジェクトを作成してみます。
カレンダー表示できます。
その他、タスクの作成、ファイル共有、フォーラム利用、プロジェクト進捗管理等ができます。確認して使ってみてください。
おまけ: config.php
の保存
4. セットアップ で設定した内容は、 config.php
に書き込まれます。しかし、Cloud Foundry ではファイルシステムが揮発性で、アプリの再起動でファイルが消えてしまいます。
この事象への対応は、百日行記事の第50日目 Tiny Tiny RSS の最後のおまけで取り上げられています。
同じように config.php
をダウンロードしておきましょう。
~/webcollab-3.43$ cp -p config/config.php config/config.php.org
~/webcollab-3.43$ cf files webcol app/htdocs/config/config.php > config/config.php
これで、次回以降アプリを更新するときも設定内容は引き継がれるようにできました。
しかし、クラウドアプリとして望ましいのは、DB 接続情報が環境的に変わっても動的に接続対応する、というものです。
これは config.php
を修正することで対応可能と思われます。
余力のある読者は是非チャレンジしてみてください。
まとめ
本日のアプリは基本的には、DB とバインドしてデプロイする、という Cloud Foundry の一般的なデプロイ手順でした。
この WebCollab、プロジェクト管理ツールとしては、シンプルですが、逆に日常でも使いやすそうなアプリでした。このようなシンプルだが実用的なアプリが今後もっと Cloud Foundry 対応していけば、業務もさらにスピーディーに進めていけるようになるかもしれません。
今回使用したソフトウェア
- cf-release (v211)
https://github.com/cloudfoundry/cf-release/tree/v211
(https://github.com/cloudfoundry/cf-release/tree/2121dc6405e0f036efa4dba963f7f49b07e76ffa) - bosh-lite
https://github.com/cloudfoundry/bosh-lite/tree/552dc6869600c5350eb7ffb4fb9c9c5e79e3889d - CF CLI (v6.12.0-8c65bbd-2015-06-30T00:10:31+00:00)
https://github.com/cloudfoundry/cli/tree/v6.12.0
(https://github.com/cloudfoundry/cli/tree/8c65bbd4d243cbbc9bdbf2ec2a3b0e094c094f48) - cf-mysql-release (v20)
https://github.com/cloudfoundry/cf-mysql-release/tree/v20
(https://github.com/cloudfoundry/cf-mysql-release/tree/8f7f6916b75a2e01332cc91df8c285dabe698703) - WebCollab (webcollab-3.43)
http://sourceforge.net/projects/webcollab/files/webcollab/webcollab-3.43%20%28Harrison%20130%29/webcollab-3.43.tar.gz