Sooey

2011-12-07 12:00:23 +0900

heroku-statusプラグイン。

herokuコマンドのプラグインとしてgeemus/heroku-statusをインストールしておくと、heroku statusHeroku | Statusの情報がわかるようになります。

$ heroku plugins:install git://github.com/geemus/heroku-status.git
heroku-status installed
$ heroku status

All Systems Go: No known issues at this time.

便利。

2011-11-28 17:37:52 +0900

プログラミングに比べて、ネットワーク構築やハードウェア、インフラ周りのことにぜんぜん興味が持てない理由をちょっと考えてみた。

おそらく、それらの学習については暗記科目のような取り組みが必要なところが性に合わないのだと思う。プログラミングと比べて、創意工夫で問題を解決する時のレバレッジが効きにくいように思えるのも、あまり魅力的に映らない。

端的に言うと、うまいことラクをする余地があまりなさそうなのかな。

2011-11-01 19:25:36 +0900

Campfireで使うbotをHubotに乗り換えた。

数ヶ月前からGithubを真似てチームで利用しているCampfireにbotを常駐させていたのだけど、そのGithubからHubotがオープンソースで公開されたので、そちらに乗り換えることにした。

ちなみに、これまではjoshwand/campfire-botをforkして簡単なプラグインを書いて使っていた。

Hubotを動かす環境はこれまでのbotと同様Herokuにしたので、基本的にはDeploying Hubot onto Herokuに書かれた手順で問題なくインストール&デプロイできた。

まず、ローカルにHubotのアーカイブをダウンロードして展開する。

$ curl -L -O https://github.com/downloads/github/hubot/hubot-1.1.7.tar.gz
$ tar xvf hubot-1.1.7.tar.gz

展開してできたhubotディレクトリに入り、gitリポジトリを作成してすべてのファイルをコミットする。

$ cd hubot
$ git init
$ git add .
$ git commit -m 'Initial commit'

Githubリポジトリをリモートとして追加

Hubotのスクリプトをチームでカスタマイズしていく場合は、Github上にリポジトリを作ってリモートとして追加しておく。

$ git remote add origin ...
$ git push origin master

ローカルでの動作確認

Hubotの実行にはredisが必要なので、Homebrewでインストール&起動しておく。

$ brew install redis
$ redis-server /usr/local/etc/redis.conf

Campfireに接続するために必要な設定を環境変数で定義する。

$ export HUBOT_CAMPFIRE_ACCOUNT='your-subdomain'
$ export HUBOT_CAMPFIRE_TOKEN='...'
$ export HUBOT_CAMPFIRE_ROOMS='999999'

HUBOT_CAMPFIRE_ACCOUNTにはCampfireで使用しているサブドメインを、HUBOT_CAMPFIRE_TOKENにはAPIアクセスに使用するトークンを、HUBOT_CAMPFIRE_ROOMSには入室させるルームのIDをそれぞれ設定する。

ソースにはProcfileが含まれているので、foremanで以下のように起動するか、

$ foreman start

もしくはProcfileに書かれているappプロセスの内容を直接実行する。

$ bin/hubot -a campfire -n Hubot

これで、redisへの接続が完了した後にbotがルームに入室してくるので、動作を確認する。

Herokuへのデプロイ

HerokuのcedarスタックでHubot用のアプリケーションを作成する。

$ heroku create --stack cedar my-cool-hubot

herokuにコードをpushしてデプロイする。

$ git push heroku master

appプロセスを1つ起動する。

$ heroku ps:scale app=1
Scaling app processes... done, now running 1

redistogoアドオンのnanoプラン(無料)を有効にする。

$ heroku addons:add redistogo:nano
-----> Adding redistogo:nano to qnyp-hubot-production... done, v5 (free)

Campfireに接続するために必要な設定を定義する。

$ heroku config:add HUBOT_CAMPFIRE_TOKEN='...'
$ heroku config:add HUBOT_CAMPFIRE_ROOMS='999999'
$ heroku config:add HUBOT_CAMPFIRE_ACCOUNT='your-subdomain'

これで、Heroku上で稼働するbotがルームに入室してくる。

うまく動かないようなら、heroku logsでログを確認したり、heroku psapp.1プロセスがちゃんとup状態になっているか確認する。

2011-10-31 22:49:08 +0900

10月31日のURLメモ。

最後に、Zuckの話の中から印象的なことばを読者にお伝えしたい。「最大のリスクは、一切のリスクをとらないこと・・・非常に変化の早い世界で、唯一失敗が保証されている戦略はリスクをとらないことだ。」