capistrano-colorized-
          streamをリリースしました
                          @sonots




13年1月16日水曜日
自己紹介
              describe Sonots do
               its(:age) { should == 30 }
               its(:hometown} { should == :Yamagata }
               its(:company) { should == :DeNA }

               it_should_behave_like “DeNA employee”
              end

              shared_examples_for “DeNA employee” do
               it { should write(:perl) } #=> fail
              end

                                      ※spec自己紹介ネタ元 take a glance at capybara2.0 by @okitan
13年1月16日水曜日
目次
              • この gem の目的
              • この gem でやってること
              • この gem の使い方
              • demo
              • 今後の展望
13年1月16日水曜日
そのまえに


              • capistrano を知っている人?
              • capistrano を使っている人?


13年1月16日水曜日
capistrano とは
              •   Capistrano was originally designed to simplify and automate
                  deployment of web applications to distributed environments, and
                  originally came bundled with a set of tasks designed for
                  deploying Rails applications.

              •   つまりは、ruby アプリのデプロイツール
                                   $ bundle exec cap deploy

              •   Capistrano is a utility and framework for executing commands in
                  parallel on multiple remote machines, via SSH.

              •   デプロイ以外にも複数ホストにコマンドを並列実
                  行したりするフレームワークといえます
                                  $ bundle exec cap shell
13年1月16日水曜日
やりたいこと




13年1月16日水曜日
cap shell (experimental)
               $ bundle exec cap staging shell
               cap> ls /
               [establishing connection(s) to host1, host2]
                ** [out :: host1] tmp
                ** [out :: host1] usr
                ** [out :: host1] var       色を付ければ
                ** [out :: host2] bin        よさそう?
                ** [out :: host2] boot
                ** [out :: host2] dev

         tailf しても追加の結果が flush されない !
         orz
13年1月16日水曜日
他のを調べた
      •   Parallel ssh (pssh) http://blog.livedoor.jp/hakin/archives/
          51652847.html

      •   Cluster ssh http://blog.livedoor.jp/hakin/archives/51652847.html

      •   Parallel Distributed Shell (pdsh) http://blog.livedoor.jp/hakin/
          archives/51857965.html

      •   csshx http://code.google.com/p/csshx/
      •   複数のリモートホストで並列にコマンドを実行して結果をファイルでダウ
          ンロードするやつ書いた             http://blog.mirakui.com/entry/rop

      ターミナル画面分割して表示するのが主流。
      ちょっと違う。
13年1月16日水曜日
やっぱり cap でやりたい
              • デプロイ直後にサーバのログを垂れ流
               してエラーが出ていないか見たい

              • config/deploy.rb に書いたデプロイ先ホス
               ト名をそのまま使える




13年1月16日水曜日
@niku4i++
              • とか悩んでいたら capistrano には tailf に適
               した stream メソッドがあって昔いじった
               ことを教えてもらう(@niku4i)




              • ちょっといじって gem 化しました!
13年1月16日水曜日
使い方
     •    gem 入れて config/deploy.rb に




     •    cap task 実行



     •    結果(例)




13年1月16日水曜日
demo



13年1月16日水曜日
今後の展望
              •   1つのコマンドを複数サーバで実行して結果を
                  垂れ流せるようにはなった

              •   次は cap shell のように対話式で複数サーバにコ
                  マンドを投げつつ、結果を colorized にしたい

              •   今の cap shell (beta) はコマンドを打つたびにssh
                  コネクションが貼られるのかすごい遅いので、
                  その改善から?

13年1月16日水曜日
まとめ
              •   capistrano に stream メソッドというものがあるこ
                  とを発掘(再発見)しました

              •   stream メソッドを拡張して、行の先頭にホスト
                  名を色付きで追加する capistrano-colorized-stream
                  を作ったので使ってみてね




              •   @niku4i++

13年1月16日水曜日

capistrano-colorized-stream

  • 1.
    capistrano-colorized- streamをリリースしました @sonots 13年1月16日水曜日
  • 2.
    自己紹介 describe Sonots do its(:age) { should == 30 } its(:hometown} { should == :Yamagata } its(:company) { should == :DeNA } it_should_behave_like “DeNA employee” end shared_examples_for “DeNA employee” do it { should write(:perl) } #=> fail end ※spec自己紹介ネタ元 take a glance at capybara2.0 by @okitan 13年1月16日水曜日
  • 3.
    目次 • この gem の目的 • この gem でやってること • この gem の使い方 • demo • 今後の展望 13年1月16日水曜日
  • 4.
    そのまえに • capistrano を知っている人? • capistrano を使っている人? 13年1月16日水曜日
  • 5.
    capistrano とは • Capistrano was originally designed to simplify and automate deployment of web applications to distributed environments, and originally came bundled with a set of tasks designed for deploying Rails applications. • つまりは、ruby アプリのデプロイツール $ bundle exec cap deploy • Capistrano is a utility and framework for executing commands in parallel on multiple remote machines, via SSH. • デプロイ以外にも複数ホストにコマンドを並列実 行したりするフレームワークといえます $ bundle exec cap shell 13年1月16日水曜日
  • 6.
  • 7.
    cap shell (experimental) $ bundle exec cap staging shell cap> ls / [establishing connection(s) to host1, host2] ** [out :: host1] tmp ** [out :: host1] usr ** [out :: host1] var 色を付ければ ** [out :: host2] bin よさそう? ** [out :: host2] boot ** [out :: host2] dev tailf しても追加の結果が flush されない ! orz 13年1月16日水曜日
  • 8.
    他のを調べた • Parallel ssh (pssh) http://blog.livedoor.jp/hakin/archives/ 51652847.html • Cluster ssh http://blog.livedoor.jp/hakin/archives/51652847.html • Parallel Distributed Shell (pdsh) http://blog.livedoor.jp/hakin/ archives/51857965.html • csshx http://code.google.com/p/csshx/ • 複数のリモートホストで並列にコマンドを実行して結果をファイルでダウ ンロードするやつ書いた http://blog.mirakui.com/entry/rop ターミナル画面分割して表示するのが主流。 ちょっと違う。 13年1月16日水曜日
  • 9.
    やっぱり cap でやりたい • デプロイ直後にサーバのログを垂れ流 してエラーが出ていないか見たい • config/deploy.rb に書いたデプロイ先ホス ト名をそのまま使える 13年1月16日水曜日
  • 10.
    @niku4i++ • とか悩んでいたら capistrano には tailf に適 した stream メソッドがあって昔いじった ことを教えてもらう(@niku4i) • ちょっといじって gem 化しました! 13年1月16日水曜日
  • 11.
    使い方 • gem 入れて config/deploy.rb に • cap task 実行 • 結果(例) 13年1月16日水曜日
  • 12.
  • 13.
    今後の展望 • 1つのコマンドを複数サーバで実行して結果を 垂れ流せるようにはなった • 次は cap shell のように対話式で複数サーバにコ マンドを投げつつ、結果を colorized にしたい • 今の cap shell (beta) はコマンドを打つたびにssh コネクションが貼られるのかすごい遅いので、 その改善から? 13年1月16日水曜日
  • 14.
    まとめ • capistrano に stream メソッドというものがあるこ とを発掘(再発見)しました • stream メソッドを拡張して、行の先頭にホスト 名を色付きで追加する capistrano-colorized-stream を作ったので使ってみてね • @niku4i++ 13年1月16日水曜日