Shiva is an open source batch based mass OpenSSH written in Bash
Shiva is a mass OpenSSH client written from the ground up to be simple and extensible. Shiva is built on top of the standard OpenSSH client. Configuration options are architected to be sane by default. The command line interface is written to be extremely intuitive and comfortable for a systems administrator to use. Basic workflows such as adding host keys or listing servers in a group are available through command line options. Options which are commonly used can be added to a central configuration file which simplifies command line options. Shiva was written to take advantage of background functions in Bash. This makes it easy to extend with features such as connecting to Satellite Server/Spacewalk/Systems Engine/Katello for group information.
In particular Shiva was written to use Satellite Server as the mechanism for managing system groups. When system groups are built from within Satellite/Spacewalk, they can be used as groups passed to Shiva. This allows an administrator to ssh into these groups of servers.
Issues, bugs and problems can be reported and tracked on Google Code
List groups that Shiva of which Shiva is aware. Local file groups are listed first, followed by groups found in Satellite Server/Spacewalk.
List Servers in Group
List servers contained in a particular group without having to go look in local file or Satellite.
shiva -L crunchtools_lab
Run Command Across Group
Run the same command across a group of servers as a batch process. All output will be returned when the last server completes. The list of successful/failed servers is returned in the same format as the group file. This is convenient for running follow up commands on the group of servers for which a command has failed.
shiva -g crunchtools uptime
=== akron.crunchtools.com ===
08:14:24 up 8 days, 23:54, 0 users, load average: 1.00, 1.00, 1.00
=== chicago.crunchtools.com ===
03:49:57 up 2 days, 16:27, 1 user, load average: 0.00, 0.00, 0.00
=== cleveland.crunchtools.com ===
08:13:52 up 8 days, 23:54, 0 users, load average: 3.00, 3.00, 3.00
=== columbus.crunchtools.com ===
08:11:17 up 8 days, 23:51, 1 user, load average: 3.00, 3.00, 3.00
=== keith.crunchtools.com ===
23:50:05 up 2 days, 18:40, 7 users, load average: 0.12, 0.09, 0.06
=== madison.crunchtools.com ===
23:50:11 up 13 days, 3:06, 0 users, load average: 0.00, 0.00, 0.00
=== milwaukee.crunchtools.com ===
03:50:14 up 13 days, 3:06, 0 users, load average: 0.49, 0.17, 0.06
Shiva from keith.crunchtools.com: Completed, 7 client(s)
Start time: Tue Oct 30 23:49:52 EDT 2012
End time: Tue Oct 30 23:50:16 EDT 2012
=== Successful ===
Add Host Keys
Auto adding of host keys is off by default and configurable in shiva.conf. Host keys can also be accepted by running the following command.
shiva -A -g crunchtools_lab uptime
- Sane by default, works out of the box
- Designed to follow the Unix philosophy of small fast and easy to use
- Intersect, not overlap, with other tools such satellite/puppet.
- Sane by default, works out of the box(sanebydefault.com)
- Default groups from files and Satellite
- Custom group files can be passed as a command line option
- List groups and group members for convenience
- Default configuration file and command line option to pass custom configuration file
- Can automatically trust host files for first connect to server groups
- Command line option to pass user other than root
- Fingerprints, useful in identifying and eliminating reboot signatures
- Different output options for wide screen terminals and character selection
- Add support for groups in Katello/Systems Engine
- Add configurable command timeout