scripts/cluster
mcy 6b1e766cf0 [cluster] convert README to MarkDown 2018-05-18 16:39:02 +02:00
..
README.md [cluster] convert README to MarkDown 2018-05-18 16:39:02 +02:00
TODO Add TODOs 2017-09-22 16:45:16 -04:00
cluster-deploy.sh [cluster] minor improvements & shellcheck 2018-04-11 22:56:01 +02:00
cluster-ping.sh [cluster] minor improvements & shellcheck 2018-04-11 22:56:01 +02:00
cluster-run.sh [cluster] minor improvements & shellcheck 2018-04-11 22:56:01 +02:00
cluster-ssh.sh [cluster] minor improvements & shellcheck 2018-04-11 22:56:01 +02:00

README.md

The cluster utilities are script allowing to work in parallel with a number of remote hosts, using utilities such as Parallel SSH (pssh) or fping. They all take as first and mandatory positional argument a host list name “NAME”; the list will be searched according to the following pattern:

$XDG_CONFIG_HOME/cluster/NAME.lst

($XDG_CONFIG_HOME being equivalent to $HOME/.config if unset.) For example, one can call the cluster-ping.sh script typing:

cluster-ping my_hosts

to use the hosts' file $XDG_CONFIG_HOME/cluster/my_hosts.lst.

The format of such a .lst file is one line per host name or IP address, for example:

192.168.42.1
192.168.42.3
priam

The scripts based on SSH use the local user's login name as remote login; this can be changed using the -l option, that must appear before the hosts list on the command line, for example:

cluster-run -l root openwrt_machines opkg install screen

The provided scripts are detailed in the sequel.

cluster-ping.sh

Test the connectivity with the hosts of the list by sending them a ICMP echo packet.

Dependency: fping

cluster-ssh.sh

Open a GNU Screen tab with an interactive SSH session for each host of the hosts list. Must be run inside of an existing Screen.

Dependencies: screen, ssh

cluster-run.sh

Run the same command on every host of the hosts list.

Dependency: parallel-ssh (pssh)

cluster-deploy.sh

Deploy one or more files in parallel on every host of the hosts list. The files are copied in the remote user's home directory.

By default, the files are transferred one by one, to make sure you notice the errors for each file (bad permissions, out of space, etc.), but you can use the -P switch to transfer them all at once (faster).

While it is possible to transfer directories with the default option, to synchronise directories one would rather use the -r option, that uses prsync rather than pscp to transfer the files. With the -R option, the remote files that are not in the local copy will be deleted (rsync's --delete option). In both cases, the transfer is done with rsync's -a (archive) option.

Please note that unlike rsync, prsync cannot handle multiple local files, therefore the -P option is ignored when passed along with -r or -R.

Dependencies: parallel-scp (pscp), parallel-rsync (prsync), cluster-ping (see above)