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.