= 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.