Lancer un script ssh sur plusieurs machines en même temps

Comment lancer un script ssh sur plusieurs machines en même temps ?

SSHKIT à l'aide

SSHKIT est un gem maintenu par les créateurs de Capistrano (et la communauté OpenSource). Il permet d'intéragir avec une machine distante. L'exemple ci-dessous n'est qu'un aperçu des possibilités d'sshkit.

Utilisation

require 'sshkit'
require 'sshkit/dsl'
include SSHKit::DSL

ips = ["192.168.1.12", "192.168.1.13"]

hosts = ips.map do |ip|
  h = SSHKit::Host.new("pi@#{ip}")
  h.password = "*****"
  h
end

on hosts do |host|
  as 'root' do
    execute("sudo sed -i 's/25 6/00 10/g' /etc/crontab") # remplace 6h25 par 10h00
    #puts host.hostname
    #puts capture('cat /etc/crontab')
  end
end