SlideShare uma empresa Scribd logo
1 de 14
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日水曜日

Mais conteúdo relacionado

Mais procurados

お手軽並列処理
お手軽並列処理お手軽並列処理
お手軽並列処理
博文 斉藤
 
処理概要図&構築手順書1124
処理概要図&構築手順書1124処理概要図&構築手順書1124
処理概要図&構築手順書1124
Kazuki Miura
 
fluent-plugin-resque_stat
fluent-plugin-resque_statfluent-plugin-resque_stat
fluent-plugin-resque_stat
Makoto Haruyama
 
GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法
博文 斉藤
 
エンジニアのための痔の話
エンジニアのための痔の話エンジニアのための痔の話
エンジニアのための痔の話
Kouhei Maeda
 

Mais procurados (20)

『こなへん』ができるまで ☆リリース直前編☆
『こなへん』ができるまで ☆リリース直前編☆『こなへん』ができるまで ☆リリース直前編☆
『こなへん』ができるまで ☆リリース直前編☆
 
お手軽並列処理
お手軽並列処理お手軽並列処理
お手軽並列処理
 
Lessfs をかじってみた(小江戸らぐオフな集まり第110回)
Lessfs をかじってみた(小江戸らぐオフな集まり第110回)Lessfs をかじってみた(小江戸らぐオフな集まり第110回)
Lessfs をかじってみた(小江戸らぐオフな集まり第110回)
 
どこでも動くゲームを作るためのベタープラクティス
どこでも動くゲームを作るためのベタープラクティスどこでも動くゲームを作るためのベタープラクティス
どこでも動くゲームを作るためのベタープラクティス
 
Kansai mrb gr_sakura
Kansai mrb gr_sakuraKansai mrb gr_sakura
Kansai mrb gr_sakura
 
処理概要図&構築手順書1124
処理概要図&構築手順書1124処理概要図&構築手順書1124
処理概要図&構築手順書1124
 
メタメタプログラミングRuby
メタメタプログラミングRubyメタメタプログラミングRuby
メタメタプログラミングRuby
 
思い通りにいかないのがWebなんて 割り切りたくないから (Gunma.web #4 2011/02/12)
思い通りにいかないのがWebなんて 割り切りたくないから (Gunma.web #4 2011/02/12)思い通りにいかないのがWebなんて 割り切りたくないから (Gunma.web #4 2011/02/12)
思い通りにいかないのがWebなんて 割り切りたくないから (Gunma.web #4 2011/02/12)
 
勉強会向けサーバを作ってみる2 / Rasbian jessieを試す/ Google Authenticatorのパスコードを作る
勉強会向けサーバを作ってみる2 / Rasbian jessieを試す/ Google Authenticatorのパスコードを作る勉強会向けサーバを作ってみる2 / Rasbian jessieを試す/ Google Authenticatorのパスコードを作る
勉強会向けサーバを作ってみる2 / Rasbian jessieを試す/ Google Authenticatorのパスコードを作る
 
SSH Tips & Tricks
SSH Tips & TricksSSH Tips & Tricks
SSH Tips & Tricks
 
Infernoの話
Infernoの話Infernoの話
Infernoの話
 
誰得コマンド&オプション35連発
誰得コマンド&オプション35連発誰得コマンド&オプション35連発
誰得コマンド&オプション35連発
 
awk v.s. bashどっちが強い?@OSC2011Tokyo
awk v.s. bashどっちが強い?@OSC2011Tokyoawk v.s. bashどっちが強い?@OSC2011Tokyo
awk v.s. bashどっちが強い?@OSC2011Tokyo
 
30days Albumの裏側〜監視・インフラCI事情〜 #monitoringcasual
30days Albumの裏側〜監視・インフラCI事情〜 #monitoringcasual30days Albumの裏側〜監視・インフラCI事情〜 #monitoringcasual
30days Albumの裏側〜監視・インフラCI事情〜 #monitoringcasual
 
pecoを使おう
pecoを使おうpecoを使おう
pecoを使おう
 
fluent-plugin-resque_stat
fluent-plugin-resque_statfluent-plugin-resque_stat
fluent-plugin-resque_stat
 
Bitbucket Pull Request 練習帳
Bitbucket Pull Request 練習帳Bitbucket Pull Request 練習帳
Bitbucket Pull Request 練習帳
 
GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法
 
ゆるかわPhp
ゆるかわPhpゆるかわPhp
ゆるかわPhp
 
エンジニアのための痔の話
エンジニアのための痔の話エンジニアのための痔の話
エンジニアのための痔の話
 

Semelhante a capistrano-colorized-stream

Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1
Ransui Iso
 
コマンドライン使いもLibreOffice
コマンドライン使いもLibreOfficeコマンドライン使いもLibreOffice
コマンドライン使いもLibreOffice
Kiwamu Okabe
 
Sqale の Puppet と Chef (と テスト)
Sqale の Puppet と Chef (と テスト)Sqale の Puppet と Chef (と テスト)
Sqale の Puppet と Chef (と テスト)
hiboma
 
Sakura no-yuube-20140327
Sakura no-yuube-20140327Sakura no-yuube-20140327
Sakura no-yuube-20140327
Kunihiro TANAKA
 

Semelhante a capistrano-colorized-stream (20)

技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい2
技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい2技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい2
技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい2
 
CPANの依存モジュールをもう少し正しく検出したい
CPANの依存モジュールをもう少し正しく検出したいCPANの依存モジュールをもう少し正しく検出したい
CPANの依存モジュールをもう少し正しく検出したい
 
[LT] インフラの人がChefやServerspec(ほか)が Rubyだったおかげですこし プログラムをするようになった話
[LT] インフラの人がChefやServerspec(ほか)が Rubyだったおかげですこし プログラムをするようになった話[LT] インフラの人がChefやServerspec(ほか)が Rubyだったおかげですこし プログラムをするようになった話
[LT] インフラの人がChefやServerspec(ほか)が Rubyだったおかげですこし プログラムをするようになった話
 
Rustのタスクモデルについて
RustのタスクモデルについてRustのタスクモデルについて
Rustのタスクモデルについて
 
らくちん Go言語
らくちん Go言語らくちん Go言語
らくちん Go言語
 
恋に落ちるデプロイツール
恋に落ちるデプロイツール恋に落ちるデプロイツール
恋に落ちるデプロイツール
 
Rpn and forth 超入門
Rpn and forth 超入門Rpn and forth 超入門
Rpn and forth 超入門
 
Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1Lisp tutorial for Pythonista : Day 1
Lisp tutorial for Pythonista : Day 1
 
Cli mini Hack!#1 ~Terminalとの親睦を深めよう~
Cli mini Hack!#1 ~Terminalとの親睦を深めよう~Cli mini Hack!#1 ~Terminalとの親睦を深めよう~
Cli mini Hack!#1 ~Terminalとの親睦を深めよう~
 
Yohes kitchen
Yohes kitchenYohes kitchen
Yohes kitchen
 
コマンドライン使いもLibreOffice
コマンドライン使いもLibreOfficeコマンドライン使いもLibreOffice
コマンドライン使いもLibreOffice
 
Ruby での外部コマンドの実行について
Ruby での外部コマンドの実行についてRuby での外部コマンドの実行について
Ruby での外部コマンドの実行について
 
#31 愛しのst2
#31 愛しのst2#31 愛しのst2
#31 愛しのst2
 
Sqale の Puppet と Chef (と テスト)
Sqale の Puppet と Chef (と テスト)Sqale の Puppet と Chef (と テスト)
Sqale の Puppet と Chef (と テスト)
 
Scala conf2013
Scala conf2013Scala conf2013
Scala conf2013
 
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
 
Emscriptenと不思議のダンジョン
Emscriptenと不思議のダンジョンEmscriptenと不思議のダンジョン
Emscriptenと不思議のダンジョン
 
Mina 20130417
Mina 20130417Mina 20130417
Mina 20130417
 
Testing in Sinatra
Testing in SinatraTesting in Sinatra
Testing in Sinatra
 
Sakura no-yuube-20140327
Sakura no-yuube-20140327Sakura no-yuube-20140327
Sakura no-yuube-20140327
 

Mais de Naotoshi Seo

HTTP/2 でリバプロするだけでグラフツールを 高速化できた話
HTTP/2 でリバプロするだけでグラフツールを 高速化できた話HTTP/2 でリバプロするだけでグラフツールを 高速化できた話
HTTP/2 でリバプロするだけでグラフツールを 高速化できた話
Naotoshi Seo
 
Mobage を支える Ruby の技術 ~ 複数DB編 ~
Mobage を支える Ruby の技術 ~ 複数DB編 ~Mobage を支える Ruby の技術 ~ 複数DB編 ~
Mobage を支える Ruby の技術 ~ 複数DB編 ~
Naotoshi Seo
 
InfluxDB の概要 - sonots #tokyoinfluxdb
InfluxDB の概要 - sonots #tokyoinfluxdbInfluxDB の概要 - sonots #tokyoinfluxdb
InfluxDB の概要 - sonots #tokyoinfluxdb
Naotoshi Seo
 
Sinatra Pattern 20130415
Sinatra Pattern 20130415Sinatra Pattern 20130415
Sinatra Pattern 20130415
Naotoshi Seo
 
Serf という Orchestration ツール #immutableinfra
Serf という Orchestration ツール #immutableinfraSerf という Orchestration ツール #immutableinfra
Serf という Orchestration ツール #immutableinfra
Naotoshi Seo
 
Shadow Server on Fluentd at Fluentd Casual Talks #3
Shadow Server on Fluentd at Fluentd Casual Talks #3Shadow Server on Fluentd at Fluentd Casual Talks #3
Shadow Server on Fluentd at Fluentd Casual Talks #3
Naotoshi Seo
 
Is ruby logger thread(process)-safe? at RubyConf 2013
Is ruby logger thread(process)-safe? at RubyConf 2013Is ruby logger thread(process)-safe? at RubyConf 2013
Is ruby logger thread(process)-safe? at RubyConf 2013
Naotoshi Seo
 
Haikanko rubykaigi 20130531
Haikanko rubykaigi 20130531Haikanko rubykaigi 20130531
Haikanko rubykaigi 20130531
Naotoshi Seo
 
Fluentdcasual 02-haikanko
Fluentdcasual 02-haikankoFluentdcasual 02-haikanko
Fluentdcasual 02-haikanko
Naotoshi Seo
 

Mais de Naotoshi Seo (13)

ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
ぼくのかんがえた Itamae/Serverspec 構成フレームワーク 〜 Kondate 〜
 
HTTP/2 でリバプロするだけでグラフツールを 高速化できた話
HTTP/2 でリバプロするだけでグラフツールを 高速化できた話HTTP/2 でリバプロするだけでグラフツールを 高速化できた話
HTTP/2 でリバプロするだけでグラフツールを 高速化できた話
 
Mobage を支える Ruby の技術 ~ 複数DB編 ~
Mobage を支える Ruby の技術 ~ 複数DB編 ~Mobage を支える Ruby の技術 ~ 複数DB編 ~
Mobage を支える Ruby の技術 ~ 複数DB編 ~
 
Fluentd Hacking Guide at RubyKaigi 2014
Fluentd Hacking Guide at RubyKaigi 2014Fluentd Hacking Guide at RubyKaigi 2014
Fluentd Hacking Guide at RubyKaigi 2014
 
InfluxDB の概要 - sonots #tokyoinfluxdb
InfluxDB の概要 - sonots #tokyoinfluxdbInfluxDB の概要 - sonots #tokyoinfluxdb
InfluxDB の概要 - sonots #tokyoinfluxdb
 
Sinatra Pattern 20130415
Sinatra Pattern 20130415Sinatra Pattern 20130415
Sinatra Pattern 20130415
 
Serf という Orchestration ツール #immutableinfra
Serf という Orchestration ツール #immutableinfraSerf という Orchestration ツール #immutableinfra
Serf という Orchestration ツール #immutableinfra
 
Shadow Server on Fluentd at Fluentd Casual Talks #3
Shadow Server on Fluentd at Fluentd Casual Talks #3Shadow Server on Fluentd at Fluentd Casual Talks #3
Shadow Server on Fluentd at Fluentd Casual Talks #3
 
Is ruby logger thread(process)-safe? at RubyConf 2013
Is ruby logger thread(process)-safe? at RubyConf 2013Is ruby logger thread(process)-safe? at RubyConf 2013
Is ruby logger thread(process)-safe? at RubyConf 2013
 
Yohoushi
YohoushiYohoushi
Yohoushi
 
Haikanko rubykaigi 20130531
Haikanko rubykaigi 20130531Haikanko rubykaigi 20130531
Haikanko rubykaigi 20130531
 
Fluentdcasual 02-haikanko
Fluentdcasual 02-haikankoFluentdcasual 02-haikanko
Fluentdcasual 02-haikanko
 
Ruby test double
Ruby test doubleRuby test double
Ruby test double
 

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日水曜日
  • 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日水曜日
  • 13. 今後の展望 • 1つのコマンドを複数サーバで実行して結果を 垂れ流せるようにはなった • 次は cap shell のように対話式で複数サーバにコ マンドを投げつつ、結果を colorized にしたい • 今の cap shell (beta) はコマンドを打つたびにssh コネクションが貼られるのかすごい遅いので、 その改善から? 13年1月16日水曜日
  • 14. まとめ • capistrano に stream メソッドというものがあるこ とを発掘(再発見)しました • stream メソッドを拡張して、行の先頭にホスト 名を色付きで追加する capistrano-colorized-stream を作ったので使ってみてね • @niku4i++ 13年1月16日水曜日