Cluster administration with pconsole

Note: You may want to consider using ClusterSSH (clusterssh package for Fedora users) as it appears to be superior to pconsole.


pconsole
, a "parallel console tool," is an excellent way to administer several machines at the same time. Every command typed is sent simultaneously to each of your attached terminals. By default, pconsole uses ssh for secure remote administration. Visit the pconsole home page to learn more.

Installing pconsole:

$ wget http://www.heiho.net/pconsole/pconsole-1.0.tar.gz
$ tar zxvf pconsole-1.0.tar.gz
$ cd pconsole-1.0

/usr/local/bin/pconsole.sh contains function declaration syntax not compatible with the Bourne shell. The following change is needed on any system where /bin/sh is the Bourne shell (e.g. Solaris).
$ sed 's/function get_tty {/get_tty () {/' pconsole.sh.in > pconsole.sh.in.new
$ mv pconsole.sh.in.new pconsole.sh.in,

$ ./configure
$ make
# make install


Configuring pconsole

pconsole requires root privileges. You may make pconsole SUID to run it as a non-privileged user. pconsole should not be world-executable, so change group ownership on the pconsole utilities so that only you or members of an administrative group may execute pconsole.

$ cd /usr/local/bin
# chmod 4750 pconsole

# chgrp your_group pconsole pconsole.sh ssh.sh

Using pconsole

Using pconsole is as simple as pconsole.sh hostname(s). It is convenient to use aliases for pconsole as demonstrated in the following example:

alias mail_relays='P_CONNECT_CMD="ssh -l user_ID"
P_TERM_OPTIONS="-geometry 80x25 -bg white" pconsole.sh
host1 host2 host3 host4'

In the example alias above, I change the xterm geometry (the default is almost illegible) and specify my user ID on the remote systems (it is the not the same as my local user ID).

Please read the pconsole documentation for more information on these environment variables and other options.

Ubuntu instructions

The Ubuntu pconsole package places pconsole.sh and ssh.sh in /usr/share/doc/pconsole/examples. Here is how I configured pconsole on my Ubuntu system:

1. $ (cd /usr/share/doc/pconsole/examples; sudo cp pconsole.sh ssh.sh /usr/local/bin)
2. $ sudo chmod u+s /usr/bin/pconsole
3. $ sudo sed --in-place 's|^#! /bin/sh|#!/bin/bash|' /usr/local/bin/pconsole.sh
4. Added the following to ~/.bashrc:

export P_CONNECT_CMD="ssh -l hutchib"

export P_TERM_OPTIONS="-geometry 80x25 -bg white"
alias p=pconsole.sh "$@"

5. Sourced ~/.bash_profile for my current login.
$ . ~/.bash_profile

Back to brandonhutchinson.com.
Last modified: 2007/02/09