0.0
Repository is archived
No commit activity in last 3 years
No release in over 3 years
An interactive SSH shell for multiple remote hosts, with EC2 search functionality.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.6
~> 10.3.2
~> 3.0.0
~> 0.8.2
~> 2.9.2
~> 1.18.0

Runtime

= 1.46
= 0.6.0
= 1.5.1
= 0.19.1
 Project Readme

Skipper

A captain for your fleet.

Skipper is a SSH session multiplexer that can run commands in sequence or parallel on multiple remote hosts. It achieves this by wrapping Capistrano's SSHKit.

Basic Usage

REPL Commands

> help
Skipper Help

help    - this message
servers - list the servers that commands will be executed on
exit    - bye, bye

Command Line Options

Usage:
  skipper

Options:
  [--servers=one two three]
  [--region=REGION]
                                         # Default: us-east-1
  [--tags=key:value]
  [--auto-scaling-groups=one two three]
  [--auto-scaling-roles=one two three]
  [--identity-file=IDENTITY_FILE]
  [--forward-agent=FORWARD_AGENT]
  [--user=USER]
                                         # Default: `whoami`
  [--run-in=RUN_IN]
  [--wait=N]
  [--limit=N]
  [--output], [--no-output]
                                         # Default: true
  [--file=FILE]

Run a command on remote servers
  # Get a SSH for multiple servers
  skipper --servers server-1.example.com server-2.example.com

  # Use a SSH identity file other than your default
  skipper --identity-file path/to/id_rsa.pub

  # Enable SSH forward agent
  skipper --forward-agent

  # Set the SSH username (defaults to `whoami`)
  skipper --user myusername

  # Limit output (do no display the output of commands)
  skipper --no-output

  # Run commands from STDIN
  echo 'pwd' | skipper

  # Run commands from a file
  skipper --file myscript.sh

Running Commands in Sequence or Parallel

By default, commands will run on all servers in parallel.

  # Only run on two instances at one
  skipper --limit 2

  # Run on only one server at a time
  skipper --run-in sequence # or
  skipper --limit 1

  # Wait 5 seconds between server groups (default group size is 1)
  skipper --wait 5

Search AWS EC2 Instances

  # Skipper can only run in the context of one region (default is `us-east-1`)
  skipper --region us-west-1

  # By tag(s)
  skipper --tags name:value

  # By auto scaling group name
  skipper --auto-scaling-groups groupname

  # By auto scaling role
  skipper --auto-scaling-roles rolename