6. Why did I created it?
• We have a lot of tools that support IT
automation, such as chef, ansible, capistrano,
fabric, …
• OTOH, we sometimes want to do ad hoc
operation. Then such IT-automation tools are
obtrusive. But ssh(1) is powerless.
• So I created App::RemoteCommand, which is
simple, and at the same time, powerful.
7. Features
• Execute remote command in parallel
• Remember sudo pass first, never ask again
• You may specify a local script file
• Append host and time to each output line
• Sane signal handling
10. Built on top of Net::OpenSSH
• Net::OpenSSH is a wrapper around ssh(1),
created by Salvador Fandiño.
• Because it is a wrapper for ssh(1),
it can use the complicated ~/.ssh/config 😎
• It multiplexes SSH connections.
• It provides sophisticated I/F for SSH operation,
including I/F for event oriented programming.
11. Using its own event loop
• Thanks to Net::OpenSSH, we can easily write an application
working with SSH in event oriented programming.
• In fact, App::RemoteCommand uses its own event loop; it
watches:
• SSH: connected, finished-command, disconnected
• IO: readable
• Process: finished
• Signals: catched