Fissher

Fissher is a simple utility to run commands on multiple servers, powered by Net::SSH::Multi.

Usage

fissher [flags] [command]:
  -G Hostgroup       Execute command on all hosts listed in the JSON config for
                     the specified group.
  -H Host1,Host2     Execute command on hosts listed on the command line
  -g jumpbox         Manually specify/override a jump server, if necessary.
  -s 		       Execute the provided commands with sudo.
  -u username        Manually specify/override username to connect with.
  -p                 Use password based authentication, specified via STDIN
  -c config.json     Manually specify the path to your fissher config file
  -n num             Number of concurrent connections. Enter 0 for unlimited.
  -U username	       Specify an alternate user to run the command as. Uses sudo.
                     (E.G. -U webmaster)

Installation

Via Rubygems (Recommended)

Simply run the following:

gem install fissher

<img src=“https://badge.fury.io/rb/fissher.png” alt=“Gem Version” />

Manual

  • Place the code into a directory by either unarchiving it or checking it out via git.

  • Run bundler to install the dependency gems (getopt, net-ssh-multi, net-ssh-session, json, highline)

JSON Config file

This file, by default, lives in the etc directory one level below where the main script lives. You can specify it manually with the -c option.

There is a sample configuration file provided with the script that displays all of the currently configurable options. Any variables can be omitted or overridden with command line options.