Skip to content

Frequently Asked Questions (FAQ)

Patrick Banholzer edited this page May 11, 2018 · 8 revisions

'''NOTE:''' These answers are targeted at the latest version of ClusterSSH available, unless otherwise indicated.

General Information

What is ClusterSSH and what is it used for?

Ever had to make the same change on more than one unix server? Find it annoyingly painful to keep repeating the exact same commands again and again and again?

This tool addresses exactly this problem. You run a utility (cssh) providing a number of server names as parameters, and then xterms opens up to each server with an extra "console" window. Anything typed into the console is replicated into each server window (so, for examples, you can edit the same file on N machines at the same time, or run the same commands with the same parameters across those servers).

It is also possible to type into the server windows directly, or temporarily disable replication to one or more of the servers through the "Hosts" menu.

Difference between ClusterSSH and "cssh"

The utility itself is called "cssh". The project name is ClusterSSH. The project is not called "cssh" because when the project was first registered on SourceForge that name was already in use.

Warnings for use and 'Gotchas'

If editing files, never assume the file is exactly the same on all servers.

For example, when editing the hosts file, hosts may be in a different order. Do not just go to line 3 and blindly make changes, but instead search for what you want to edit. This should avoid any nasty side-effects of working on the wrong line.

It is wise to check all the servers to ensure the commands have worked as expected before doing anything too destructive (i.e. the file edits have resulted in the required changes).

Working Platforms

ClusterSSH is known to work on ...

  • Solaris 2.6, 8, 9 and 10 both sparc and x86
  • Linux (RedHat Enterprise, Redhat Fedora, CentOS, Debian and Ubuntu)
  • OpenBSD x86
  • HP-UX Risc2 LP64

It should work on

  • any POSIX compliant UNIX style OS, i.e. cygwin

What is the maximum number of client windows?

How big is your screen?

There is no hard limit - it is all dependent on the machine ClusterSSH is being used on. As an indicator the author has had 95 tiled client windows (plus console) open and working with no problems on a Fedora Core 4 system with dual head 19" screens. However, the visible area of the client windows is very small and particular notice should be taken of the "Warnings for use" section above (the size of the terminal is vertically shrunk to fit all the windows onto the screen).

Prerequisites

General

  • A POSIX compliant admin server (to run cssh from).
  • Perl 5.6.1 or newer.

Perl Modules

These may be available in your OS software repository (i.e. for linux look at RPMForge), else from [http://www.cpan.org CPAN].

  • Tk
  • X11::Protocol

Configuration Files

/etc/clusters

The cluster tag database. Contains a list of tags and hostnames, in the form

[@]hostname [...]

Newlines and comments (delimited with a #) are ignored.

Cluster definitions can also be added to the $HOME/.csshrc file

/etc/csshrc

Global configuration file, sourced by all users. Can be generated by:

cssh -u > /etc/csshrc

$HOME/.csshrc

Per user configuration file. Can be generated by:

cssh -u > /etc/csshrc

To add a cluster definition to this file, use the following format

cluster_tag1 = server1 server2 user@server3
cluster_tag2 = server4 server5
clusters = cluster_tag1 cluster_tag2

Be aware of using "reserved names" and no check is currently performed for them.

How do I use XXX with ClusterSSH

Telnet, RSH and Console can already be used with Clusterssh - see the 'ctel', 'crsh' and 'ccon' commands. Other software may be used with some code modifications.

Problems, issues and work-arounds

Using a 'jump off' or proxy server

To connect to machine X you need to first connect to machine Y

To do this you can either use ChainSSH or set up an appropriate ssh tunnel - see ProxyCommand in the ssh_config man page for entries to add to your ~/.ssh/config file

Pasting into the console does not work

You may need to enable an X11 setting to do this - the X documentation suggests adding *selectToClipboard: true to the /etc/X11/app-defaults/XTerm file. See issue https://github.com/duncs/clusterssh/issues/80 for more information.

Related Software

ClusterSSH has a wrapper for Vagrant (see https://github.com/purpleidea/oh-my-vagrant/blob/6bf200caa923174e1a1af146d24069e0309c948e/extras/vagrant.bashrc#L226)

Alternatives to ClusterSSH

Just in case ClusterSSH doesn't quite do what you want or work as you expect, these alternatives are available (depending on platform and OS)

BitCluster - http://www.bitmover.com/bitcluster/

PConsole - http://www.heiho.net/pconsole/

MultiXTerm - http://expect.nist.gov/example/multixterm.man.html

C3 - http://www.csm.ornl.gov/torc/C3/C3documentation.shtml

Keyboardcast - https://launchpad.net/keyboardcast

PuTTYCS - PuTTY Command Sender - http://www.millardsoftware.com/puttycs