Parallel Shell

Used to remotely issue commands on multiple linux server.

Setup

Add the following to your .bashrc file

export PDSH_RCMD_TYPE=ssh

You should use ssh keys to authenticate. If you don't have one see SshKeys. We will use ssh-copy-id to copy the ssh key to the appropriate server

ssh-copy-id -i keyfile.pub username@target.server.com

Where you obviously need to change the file name and target.

If your key has a passphrase, you won't be able to use pdsh directly. First you will have to run the ssh-agent:

eval `ssh-agent -s` #starts the ssh agent if not started
ssh-add -l          #lists existing keys 
ssh-add ./.ssh/filename #adds the key and allows you to enter the passphrase

Now we need to create a "hosts" file to use with the system. For example:

root@server0.target.com 
root@server1.target.com
root@server2.target.com

Now we can do things like

pdsh -w ^hosts apt update
pdsh -w ^hosts apt -y upgrade

When you are done, you may want to delete your keys from the agent:

ssh-add -D

OR, just ending your session will end the ssh-agent and remove all keys.

ParallelShell (last edited 2023-10-05 19:24:42 by scot)