Назад | Перейти на главную страницу

Знать состояние выполнения задания SQL Server

Я пытаюсь запустить кучу заданий из 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 и не будет быть