web-dev-qa-db-fra.com

commande d'exécution ansible sur l'hôte distant en arrière-plan

J'essaie de démarrer Filebeat (ou d'ailleurs tout autre processus qui s'exécutera en continu à la demande) sur plusieurs hôtes en utilisant ansible. Je ne veux pas qu'ansible attende que le processus continue. Je veux qu'Ansible puisse tirer et oublier et sortir et garder le processus à distance en arrière-plan. J'ai essayé d'utiliser les options ci-dessous:

    ---
    - hosts: filebeat
      tasks:
      - name: start filebeat
option a)  command: filebeat -c filebeat.yml &
option b)  command: Nohup filebeat -c filebeat.yml &
option c)  Shell: filebeat -c filebeat.yml &
           async: 0 //Tried without as well. If its > 0 then it only waits for that much of time and terminates the filebeat process on remote Host and comes out.
           poll: 0
20
Mrunal Gosar

Réponse simplifiée de lien J'ai mentionné dans le commentaire:

---
- hosts: centos-target
  gather_facts: no
  tasks:
    - Shell: "(cd /; python -mSimpleHTTPServer >/dev/null 2>&1 &)"
      async: 10
      poll: 0

Notez les parenthèses de sous-coque.

Mise à jour: en fait, ça devrait aller sans async, n'oubliez pas de rediriger stdout:

- name: start simple http server in background
  Shell: cd /tmp/www; Nohup python -mSimpleHTTPServer </dev/null >/dev/null 2>&1 &
38
Konstantin Suvorov