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.gitInstall locally:
pip3 install --user git+https://github.com/google/paramgmt.gitInstall globally:
sudo python3 setup.py installInstall locally:
python3 setup.py install --userThe following command will uninstall the paramgmt Python package and the command-line executables.
sudo pip3 uninstall paramgmtCreate a hosts file
cat<<EOF >> hosts.txt
tux.penguin.com
myserver
192.168.200.2
EOFThis command tests the paramgmt Python package.
python3 -m paramgmt -f hosts.txt -r 3This command tests the command-line executables.
test/test.sh hosts.txt 3Tutorial here: https://nicisdigital.wordpress.com/2015/06/23/paramgmt-interacting-with-thousands-of-servers-over-ssh-part-1/