Я пытаюсь запустить кучу заданий из Ansible (с помощью osql):
- name: 'Starting jobs'
win_shell: 'osql -S {{ server }} -Q "exec msdb.dbo.sp_start_job {{ item }}" -U {{ username }} -P {{ password }}'
args:
executable: cmd
with_items: '{{ jobs }}'
until: jobs_out.stdout.find("started successfully") != -1
register: jobs_out
Все работает нормально, но у меня нет информации о текущем состоянии выполнения задания. Я не знаю, работает он или уже закончен.
Есть ли способ иметь какой-то PID или заблокировать osql до его завершения? Есть ли какой-нибудь модуль Ansible для этого?
Любые предложения приветствуются, но я не могу трогать вакансии
Не уверен на 100%, что это ответ на ваш вопрос. В документация утверждает, что:
WinRM не вернется из выполнения команды, пока все созданные дочерние процессы не завершатся. Таким образом, невозможно использовать win_shell для создания длительно выполняющихся дочерних или фоновых процессов. Рассмотрите возможность создания службы Windows для управления фоновыми процессами.
Итак, пока задача Ansible запускает osql
команда также работает. Если вы хотите предотвратить osql
команды для запуска на хосте, функциональность которых должна быть частью osql
команда.
Если вы ищете вывод команды в журнале в реальном времени, это не реализовано в Ansible и не будет быть