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 .