Obtuve esto funcionando de la siguiente manera
.ssh / config se modificó para eliminar el mensaje yes / no: estoy detrás de un firewall, así que no me preocupan las claves ssh falsas
host *
StrictHostKeyChecking no
Cree un archivo de respuesta para esperar, es decir, answer.expect
set timeout 20
set node [lindex $argv 0]
spawn ssh root@node service hadoop-hdfs-datanode restart
expect "*?assword {
send "password\r" <- your password here.
interact
Cree su script bash y solo llame a wait en el archivo
#!/bin/bash
i=1
while [$i -lt 129] # a few nodes here
expect answer.expect hadoopslave$i
i=[$i + 1]
sleep 5
done
Obtiene 128 nodos de datos hadoop actualizados con una nueva configuración, suponiendo que esté utilizando un montaje NFS para los archivos hadoop / conf
Espero que esto ayude a alguien: soy un Windows numpty y esto me tomó alrededor de 5 horas para descubrirlo.