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

Вызов скрипта Python через Ansible Playbook и его запуск в фоновом режиме - через Ansible Tower

Здесь я пытаюсь вызвать скрипт Python через доступную книгу воспроизведения. Когда я запускаю playbook, содержащий нижеупомянутый код, он успешно вызывает скрипт. Но скрипт ansible продолжает работать, пока скрипт Python не завершит все свои задачи.

- hosts: localhost
  gather_facts: false
  vars:
    username: 'User'
    password: '1234@345'
  tasks:

    - name: Invoking Python script
      script: data_pull_push.py 
      args:
        executable: python

Сценарий python "data_pull_push.py" получает данные из URL-адреса и отправляет их на другой URL-адрес. В нем слишком много данных. Так что получение и публикация всех данных занимает действительно много времени. Поэтому я хочу, чтобы сценарий Ansible запускал в нем скрипт Python и закрывал книгу воспроизведения. Сценарий Python должен работать в фоновом режиме.

И этот сценарий воспроизведения Ansible и сценарий python хранятся в git и будут запускать сценарий воспроизведения в башне Ansible. Я не понимаю, как это использовать в Ansible. Если кто-нибудь знает, дайте мне знать.

Вы должны использовать Асинхронные действия и опрос Возможности Ansible.

Итак, ваша задача должна выглядеть так:

- name: Long async task
  command: python data_pull_push.py
  async: <timeout value>
  poll: 0

Создайте фоновое задание с помощью выбранных вами утилит диспетчера заданий, таких как atd, cron, supervisord или systemd. Просто примеры, многие другие менеджеры служб существуют в зависимости от операционной системы.

Из них по крайней мере cron, supervisord и systemd имеют модули оболочки Ansible. Даже если он не существует, вы можете вызвать systemd-run или что-то еще с помощью общей команды.