This is not an official Google product. This project was created by Nic McDonald at Google.
ParaMgmt is a python package designed to ease the burden of interacting with many remote machines via SSH. The primary focus is on parallelism, good error handling, automatic connection retries, and nice viewable output. The abilities of ParaMgmt include running local commands, running remote commands, transferring files to and from remote machines, and executing local scripts on remote machines. This package includes command-line executables that wrap the functionality provided by the Python package.
ParaMgmt is compatible with both Python2.7+ and Python3.x. I personally
recommend Python3, so the following installation example will be for that. If
you insist on using Python2, substitute pip3
with pip2
and python3
with
python2
. If you want ParaMgmt installed in both, install it in Python2 then in
Python3. The command-line executables will then use the latter. The installer
requires the setuptools
package.
Both installations methods below will install a Python package called paramgmt
as well as 6 command-line executables: rhosts
, lcmd
, rcmd
, rpush
, rpull
, and
rscript
.
Install globally:
sudo pip3 install git+https://github.com/google/paramgmt.git
Install locally:
pip3 install --user git+https://github.com/google/paramgmt.git
Install globally:
sudo python3 setup.py install
Install locally:
python3 setup.py install --user
The following command will uninstall the paramgmt Python package and the command-line executables.
sudo pip3 uninstall paramgmt
Create a hosts file
cat<<EOF >> hosts.txt
tux.penguin.com
myserver
192.168.200.2
EOF
This command tests the paramgmt
Python package.
python3 -m paramgmt -f hosts.txt -r 3
This command tests the command-line executables.
test/test.sh hosts.txt 3
Tutorial here: https://nicisdigital.wordpress.com/2015/06/23/paramgmt-interacting-with-thousands-of-servers-over-ssh-part-1/