У меня есть цикл for, который я использую, чтобы остановить и запустить несколько серверов разработки, вот пример.
for i in `cat hosts` ; do ssh $i -i .ssh/key.key -t sudo /etc/init.d/jboss-as start ; done
Это будет подключаться к каждому ящику один за другим и останавливать службу, и мне нужно дождаться операции закрытия службы в этом случае "jboss", прежде чем будет выполнено соединение с другими блоками.
Есть ли способ выполнить запрос и выйти, не дожидаясь его завершения?
Спасибо
Как предложил krisFR, запустите все команды в фоновом режиме:
for i in $(cat hosts); do
(ssh ${i} -i .ssh/key.key -t sudo /etc/init.d/jboss-as start) &
done
ПРИМЕЧАНИЕ: $ () предпочтительнее, чем `` для запуска подоболочки.
ansible -i hosts -k -m service -a "имя = jboss-as состояние = запущено"
Вот для чего нужны инструменты оркестровки;)