Skip to content

WIP: execute interactive commands on your servers via SSHKit

License

Notifications You must be signed in to change notification settings

pedrogarrett/sshkit-interactive

 
 

Repository files navigation

SSHKit::Interactive

Gem Version Build Status

An SSHKit backend that allows you to execute interactive commands on your servers. Remote commands that you might want to use this for:

  • A Rails console
  • A text editor
  • less
  • etc.

Installation

Add this line to your application's Gemfile:

gem 'sshkit-interactive'

And then execute:

$ bundle

If you're using Capistrano, add the following to your Capfile:

require 'sshkit/interactive'

Usage

Running interactive commands will make a system call to ssh under the hood.

DSL

Using the DSL, simply put the command within the run_interactively block. In Capistrano, it might look something like this:

namespace :rails do
  desc "Run Rails console"
  task :console do
    run_interactively primary(:app) do
      execute(:rails, :console)
    end
  end
end

It is also possible to set directory and user the Capistrano way:

namespace :rails do
  desc "Run Rails console"
  task :console do
    run_interactively primary(:app) do
      within current_path do
        as user: :foobar do
          execute(:rails, :console)
        end
      end
    end
  end
end

Manually setting the backend

Use the interactive backend and execute commands as normal:

SSHKit.config.backend = SSHKit::Interactive::Backend
hosts = %w{my.server.com}
on hosts do |host|
  execute(:vim)
end

Contributing

  1. Fork it
  2. Clone it
  3. Create your feature branch (git checkout -b my-new-feature)
  4. Commit your changes (git commit -am 'Add some feature')
  5. Push to the branch (git push origin my-new-feature)
  6. Create a new Pull Request

About

WIP: execute interactive commands on your servers via SSHKit

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Ruby 100.0%