У меня есть DSL задания jenkins, который запускается на удаленном узле (Linux ОС) с использованием «Ограничить, где можно запустить этот проект». Метка.
Имеет шаг «Сборка» -> «Выполнить оболочку» "
В оболочке выполнения, о которой я упомянул,
sh /app/runalljobs.sh &
На удаленном узле runalljobs. sh выглядит следующим образом:
cat runalljobs.sh
ansible-playbook /app/test.yml -e argu=arg1
ansible-playbook /app/test.yml -e argu=arg2
.....
.....
ansible-playbook /app/test.yml -e argu=arg16
Runalljobs. * Предполагается, что 1032 * запускает 16 ansible процессов в фоновом режиме при выполнении runalljob. sh.
Это прекрасно работает, когда сценарий выполняется вручную из оболочки замазки удаленного узла.
Однако я хочу, чтобы скрипт запускал процессы ansible в фоновом режиме на удаленном узле при вызове с использованием задания jenkins, которое не выполняется.
Я также пытался комментировать sh /app/runalljobs.sh &
и добавление отдельной команды ansible в «Выполнить оболочку», как показано ниже:
ansible-playbook /app/test.yml -e argu=arg1 &
ansible-playbook /app/test.yml -e argu=arg2 &
.....
.....
ansible-playbook /app/test.yml -e argu=arg16 &
Но это тоже не вызвало процессы ansible на целевом узле.
Это работает, если я удаляю «&», а затем все команды ansible запускаются последовательно одна за другой на удаленном компьютере.
Тем не менее, я sh все команды ansible должны запускаться параллельно в фоновом режиме, и исполнитель Jenkins должен приступить к выполнению других задач оболочки выполнения.
Подскажите, пожалуйста, как Могу ли я получить требование?