Действительно, pssh
звучит как лучшее решение.Если вы должны использовать parallel
, это должно быть довольно просто: передавайте имена хостов по одному в строке в одну команду, которая использует {}
в качестве места назначения. Например:
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"
Использование sshpass
не должно иметь никакого значения. Сначала проверьте это с помощью простой команды, например, просто hostname
.