05 October 2010

Configuring multiple devices via ssh

When you have 100+ routers or servers you manage, it is a bit tedious to make a configuration change to all of them manually, especially when that change is exactly the same for all of them. There is tons of software for this scenario. I have used a few different ones in the past, but parallel-ssh (formerly pssh) is what I use for Mikrotik.

Example: Need to enable and set primary and secondary ntp servers on 100 devices. First you need to create a text file with all your devices IP addresses, and optionally port and username.

save it as ips.txt for instance, and use the command bellow to blast commands to all listed devices.

parallel-ssh -l admin -x "-o StrictHostKeyChecking=no" -A -h /home/sam/ips.txt -v -t 10 -o /home/sam "/system ntp client set mode=unicast enabled=yes primary-ntp= secondary-ntp="

-l      Specify the user here instead of txt file
-A    Prompt for password
-h     Location of host file
-o     Output results to this directory (will create individual file per node)
-x     ssh arguments, see 'man ssh' StrictHostKeyChecking=no is required if you haven't accepted the            keys for the hosts previously

See man parallel-ssh for further details

If you get timeouts, it may be because you haven't saved or 'trusted' the server's key.
Error 255 may indicate failed login attempt

UPDATE: To remove the need for saving / trusting keys, edit /etc/ssh/ssh_config and add these 2 lines underneath the line 'Host *'

StrictHostKeyChecking no

This will bypass the need to hit 'yes'.

No comments:

Post a Comment