KPT itを動かして見ました。(CentOS5.5)
昨日MOONGIFTに載っていたアジャイル開発におけるKPTをまとめるのに役立つ·KPT it MOONGIFT を導入してみました。
手元のCentOS5.5にインストールして動かしてます。
前提として、Rubyは1.9.3が入っています。
その他rubygemsなどの基本的なものが入っている環境上で動かす手順です。
環境を整える
とりあえず特にドキュメントも見当たらなかったのでトライ&エラーで実施。
# rackup /usr/local/ruby/1.9.3/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- bundler/setup (LoadError) from /usr/local/ruby/1.9.3/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' from /var/git/kpt-it/config/boot.rb:7:in `' from /usr/local/ruby/1.9.3/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' from /usr/local/ruby/1.9.3/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' from /var/git/kpt-it/config.ru:8:in `block in ' from /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/rack-1.3.5/lib/rack/builder.rb:51:in `instance_eval' from /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/rack-1.3.5/lib/rack/builder.rb:51:in `initialize' from /var/git/kpt-it/config.ru:1:in `new' from /var/git/kpt-it/config.ru:1:in ` ' from /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/rack-1.3.5/lib/rack/builder.rb:40:in `eval' from /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/rack-1.3.5/lib/rack/builder.rb:40:in `parse_file' from /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/rack-1.3.5/lib/rack/server.rb:200:in `app' from /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/rack-1.3.5/lib/rack/server.rb:301:in `wrapped_app' from /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/rack-1.3.5/lib/rack/server.rb:252:in `start' from /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/rack-1.3.5/lib/rack/server.rb:137:in `start' from /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/rack-1.3.5/bin/rackup:4:in ` ' from /usr/local/ruby/1.9.3/bin/rackup:19:in `load' from /usr/local/ruby/1.9.3/bin/rackup:19:in ` '
bundlerが必要みたいなのでインストール
# gem install bundler
再度rackup
# rackup Could not find multi_json-1.0.4 in any of the sources Run `bundle install` to install missing gems.
bundle installで必要なものをインストール
# bundle install Fetching source index for http://rubygems.org/ Using rake (0.9.2.2) Installing multi_json (1.0.4) Installing activesupport (3.1.3) Using builder (3.0.0) Installing i18n (0.6.0) Installing activemodel (3.1.3) Installing addressable (2.2.6) Installing bson (1.5.1) Installing bson_ext (1.5.1) with native extensions Using bundler (1.0.21) Installing crack (0.1.8) Installing diff-lcs (1.1.3) Installing erubis (2.7.0) Using mime-types (1.17.2) Installing grit (2.4.1) Installing launchy (2.0.5) Using rest-client (1.6.7) Installing rubyzip (0.9.5) Installing term-ansicolor (1.0.7) Installing heroku (2.14.0) Using rack (1.3.5) Installing url_mount (0.2.1) Installing http_router (0.10.2) Installing polyglot (0.3.3) Installing treetop (1.4.10) Installing mail (2.3.0) Installing mongo (1.5.1) Installing tzinfo (0.3.31) Installing mongoid (2.2.0) Using rack-protection (1.1.4) Using tilt (1.3.3) Using sinatra (1.3.1) Installing thor (0.14.6) Installing padrino-core (0.10.5) Installing padrino-helpers (0.10.5) Installing padrino-admin (0.10.5) Installing padrino-cache (0.10.5) Installing padrino-gen (0.10.5) Installing padrino-mailer (0.10.5) Installing padrino (0.10.5) Using ruby-hmac (0.4.0) Installing signature (0.1.2) Installing pusher (0.8.4) Installing rack-test (0.6.1) Installing rspec-core (2.7.1) Installing rspec-expectations (2.7.0) Installing rspec-mocks (2.7.0) Installing rspec (2.7.0) Installing sass (3.1.11) Installing settingslogic (2.0.6) Installing sinatra-flash (0.3.0) Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.
再度rackupで起動
# rackup /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/mongo-1.5.1/lib/mongo/connection.rb:413:in `connect': Failed to connect to a master node at localhost:27017 (Mongo::ConnectionFailure) from /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/mongo-1.5.1/lib/mongo/connection.rb:573:in `setup' from /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/mongo-1.5.1/lib/mongo/connection.rb:104:in `initialize' from /var/git/kpt-it/config/database.rb:14:in `new' from /var/git/kpt-it/config/database.rb:14:in `' from /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/padrino-core-0.10.5/lib/padrino-core/reloader.rb:148:in `require' from /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/padrino-core-0.10.5/lib/padrino-core/reloader.rb:148:in `safe_load' from /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/padrino-core-0.10.5/lib/padrino-core/loader.rb:162:in `block in require_dependencies' from /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/padrino-core-0.10.5/lib/padrino-core/loader.rb:160:in `each' from /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/padrino-core-0.10.5/lib/padrino-core/loader.rb:160:in `require_dependencies' from /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/padrino-core-0.10.5/lib/padrino-core/loader.rb:67:in `load!' from /var/git/kpt-it/config/boot.rb:29:in ` ' from /usr/local/ruby/1.9.3/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' from /usr/local/ruby/1.9.3/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' from /var/git/kpt-it/config.ru:8:in `block in ' from /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/rack-1.3.5/lib/rack/builder.rb:51:in `instance_eval' from /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/rack-1.3.5/lib/rack/builder.rb:51:in `initialize' from /var/git/kpt-it/config.ru:1:in `new' from /var/git/kpt-it/config.ru:1:in ` ' from /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/rack-1.3.5/lib/rack/builder.rb:40:in `eval' from /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/rack-1.3.5/lib/rack/builder.rb:40:in `parse_file' from /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/rack-1.3.5/lib/rack/server.rb:200:in `app' from /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/rack-1.3.5/lib/rack/server.rb:301:in `wrapped_app' from /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/rack-1.3.5/lib/rack/server.rb:252:in `start' from /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/rack-1.3.5/lib/rack/server.rb:137:in `start' from /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/rack-1.3.5/bin/rackup:4:in ` ' from /usr/local/ruby/1.9.3/bin/rackup:19:in `load' from /usr/local/ruby/1.9.3/bin/rackup:19:in ` '
MongoDBの起動が必要らしいのでインストールして起動
# wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.0.2.tgz # tar zvxf mongodb-linux-x86_64-2.0.2.tgz # mv mongodb-linux-x86_64-2.0.2 /usr/local/mongodb # mkdir /data/db # /usr/local/mongodb/bin/mongod --fork --logpath /tmp/mongodb.log
さらに、設定ファイルapplication.ymlを作成
# cp config/application.default.yml config/application.yml # vim config/application.yml defaults: &defaults pusher: app_id: "pusherのid" key: "pusherのkey" secret: "pusherのsecret" development: <
Pusher | Leader In Realtime TechnologiesのAPI KeyとSecret Keyを登録する必要があるようなので、pusherのアカウントを作成。
app_id,key,secretを上記のapplication.ymlに記述。
サーバ起動
rackupで起動
# rackup [2011-12-20 11:08:44] INFO WEBrick 1.3.1 [2011-12-20 11:08:44] INFO ruby 1.9.3 (2011-10-30) [x86_64-linux] [2011-12-20 11:08:44] INFO WEBrick::HTTPServer#start: pid=7784 port=9292
9292ポートで無事Webrickが起動。
iptablesの設定変更を実施して9292ポートに接続できるようにし、ブラウザからアクセスしてみる
saveを実行しようとするとエラーが発生
SocketError - getaddrinfo: Temporary failure in name resolution: /usr/local/ruby/1.9.3/lib/ruby/1.9.1/net/http.rb:762:in `initialize' /usr/local/ruby/1.9.3/lib/ruby/1.9.1/net/http.rb:762:in `open' /usr/local/ruby/1.9.3/lib/ruby/1.9.1/net/http.rb:762:in `block in connect' /usr/local/ruby/1.9.3/lib/ruby/1.9.1/timeout.rb:54:in `timeout' /usr/local/ruby/1.9.3/lib/ruby/1.9.1/timeout.rb:99:in `timeout' /usr/local/ruby/1.9.3/lib/ruby/1.9.1/net/http.rb:762:in `connect' /usr/local/ruby/1.9.3/lib/ruby/1.9.1/net/http.rb:755:in `do_start' /usr/local/ruby/1.9.3/lib/ruby/1.9.1/net/http.rb:744:in `start' /usr/local/ruby/1.9.3/lib/ruby/1.9.1/net/http.rb:1284:in `request' /usr/local/ruby/1.9.3/lib/ruby/1.9.1/net/http.rb:1307:in `send_entity' /usr/local/ruby/1.9.3/lib/ruby/1.9.1/net/http.rb:1096:in `post' /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/pusher-0.8.4/lib/pusher/request.rb:35:in `send_sync' /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/pusher-0.8.4/lib/pusher/channel.rb:51:in `trigger!' /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/pusher-0.8.4/lib/pusher/channel.rb:60:in `trigger' /var/git/kpt-it/app/controllers/posts.rb:14:in `block (2 levels) in' /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/padrino-core-0.10.5/lib/padrino-core/application/routing.rb:569:in `call' /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/padrino-core-0.10.5/lib/padrino-core/application/routing.rb:569:in `block in route' /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/padrino-core-0.10.5/lib/padrino-core/application/routing.rb:51:in `' /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/padrino-core-0.10.5/lib/padrino-core/application/routing.rb:51:in `block (3 levels) in process_destination_path' /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/sinatra-1.3.1/lib/sinatra/base.rb:788:in `route_eval' /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/padrino-core-0.10.5/lib/padrino-core/application/routing.rb:51:in `block (2 levels) in process_destination_path' /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/padrino-core-0.10.5/lib/padrino-core/application/routing.rb:51:in `catch' /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/padrino-core-0.10.5/lib/padrino-core/application/routing.rb:51:in `block in process_destination_path' /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/padrino-core-0.10.5/lib/padrino-core/application/routing.rb:25:in `instance_eval' /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/padrino-core-0.10.5/lib/padrino-core/application/routing.rb:25:in `process_destination_path' (eval):65:in `block (2 levels) in inject_root_methods' (eval):55:in `catch' (eval):55:in `block in inject_root_methods' /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/http_router-0.10.2/lib/http_router/node/root.rb:92:in `' /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/http_router-0.10.2/lib/http_router.rb:119:in `block in call' /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/http_router-0.10.2/lib/http_router.rb:119:in `catch' /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/http_router-0.10.2/lib/http_router.rb:119:in `call' /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/padrino-core-0.10.5/lib/padrino-core/application/routing.rb:910:in `route!' /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/padrino-core-0.10.5/lib/padrino-core/application/routing.rb:900:in `dispatch!' /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/sinatra-1.3.1/lib/sinatra/base.rb:706:in `block in call!' /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/sinatra-1.3.1/lib/sinatra/base.rb:871:in `block in invoke' /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/sinatra-1.3.1/lib/sinatra/base.rb:871:in `catch' /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/sinatra-1.3.1/lib/sinatra/base.rb:871:in `invoke' /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/sinatra-1.3.1/lib/sinatra/base.rb:706:in `call!' /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/sinatra-1.3.1/lib/sinatra/base.rb:692:in `call' /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/sass-3.1.11/lib/sass/plugin/rack.rb:54:in `call' /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/rack-1.3.5/lib/rack/head.rb:9:in `call' /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/rack-1.3.5/lib/rack/methodoverride.rb:24:in `call' /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/padrino-core-0.10.5/lib/padrino-core/reloader.rb:250:in `call' /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/padrino-core-0.10.5/lib/padrino-core/logger.rb:306:in `call' /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/sinatra-1.3.1/lib/sinatra/showexceptions.rb:21:in `call' /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/rack-1.3.5/lib/rack/session/abstract/id.rb:195:in `context' /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/rack-1.3.5/lib/rack/session/abstract/id.rb:190:in `call' /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/sinatra-1.3.1/lib/sinatra/base.rb:1334:in `block in call' /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/sinatra-1.3.1/lib/sinatra/base.rb:1403:in `synchronize' /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/sinatra-1.3.1/lib/sinatra/base.rb:1334:in `call' /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/padrino-core-0.10.5/lib/padrino-core/router.rb:83:in `block in call' /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/padrino-core-0.10.5/lib/padrino-core/router.rb:76:in `each' /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/padrino-core-0.10.5/lib/padrino-core/router.rb:76:in `call' /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/rack-1.3.5/lib/rack/lint.rb:48:in `_call' /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/rack-1.3.5/lib/rack/lint.rb:36:in `call' /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/rack-1.3.5/lib/rack/showexceptions.rb:24:in `call' /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/rack-1.3.5/lib/rack/commonlogger.rb:20:in `call' /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/rack-1.3.5/lib/rack/chunked.rb:41:in `call' /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/rack-1.3.5/lib/rack/content_length.rb:14:in `call' /usr/local/ruby/1.9.3/lib/ruby/gems/1.9.1/gems/rack-1.3.5/lib/rack/handler/webrick.rb:59:in `service' /usr/local/ruby/1.9.3/lib/ruby/1.9.1/webrick/httpserver.rb:138:in `service' /usr/local/ruby/1.9.3/lib/ruby/1.9.1/webrick/httpserver.rb:94:in `run' /usr/local/ruby/1.9.3/lib/ruby/1.9.1/webrick/server.rb:191:in `block in start_thread'
自分が試した環境だと、api.pusherapp.comの名前解決に失敗してエラーになっているので、
gemパッケージpusherのlib/pusher.rbの下記を直接IPアドレス指定。
86 #self.host = 'api.pusherapp.com' 87 self.host = '50.17.218.205'
これでエラーが発生しなくなった。
アプリ所感
とりあえずKeep,Problem,Tryをどんどん追加していくのには使えそう。
ただ、削除したり、グループわけとか、ユーザ管理とかそういった機能はないみたいです。
なので、個人的に使うとか、グループ全員でとりあえず貯めこむ場として使えるといいかもしれません。