De fato, pssh
parece a melhor solução. Se você precisar usar parallel
, deverá ser bastante simples: canalize os nomes de host um por linha em um único comando que use {}
como um placehold. Por exemplo:
consul members | ... awk {'print $2'} | cut -d ":" -f1 |
parallel -j 10 sshpass -p "$PASSWORD" ssh -oStrictHostKeyChecking=no -q root@{} "hostname && yum clean all && yum -y update consul && systemctl restart consul.service"
Usar sshpass
não deve fazer diferença. Teste primeiro com um comando simples, como apenas hostname
.