So I’m working on regisgtering 100+ RHEL systems to a new RHN Satellite server.  The following command line for loop magic mad this a snap, thought it was worth publishing.

First, I’m using a passworded SSH key.  So you’ll want to use ssh-add (with ssh-agent) to store your credentials, otherwise it’ll be a pain to re-type your password with every connection. I’ve also stored my sudo password (which is the same on all of the servers i’m accessing at the moment) in a file, called pwd.txt.  Finally I made a list of servers in a file called servers.txt.

Once you’ve done that, it’s as simple as this:

for i in `cat servers.txt`; do \

  ssh -t $i ” echo `cat pwd.txt` | sudo -S sh -c ‘wget –no-check-certificate https://my.satellite.server.com/pub/bootstrap/bootstrap.sh'”;\

  ssh -t $i “echo `cat pwd.txt` | sudo -S sh -c ‘/bin/bash bootstrap-base.sh'” ;

done;

This worked wonderfully!