Ich möchte a.sh auf Remote-Hosts ausführen und alle Ausgabedateien abrufen. Ausgabedatei mit Zeitstempel. Ich habe den folgenden Code geschrieben und er schlägt mit einem Fehler fehl

Ich möchte a.sh auf Remote-Hosts ausführen und alle Ausgabedateien abrufen. Ausgabedatei mit Zeitstempel. Ich habe den folgenden Code geschrieben und er schlägt mit einem Fehler fehl

Ich möchte a.sh auf Remote-Hosts ausführen und alle Ausgabedateien abrufen. Ausgabedatei mit Zeitstempel. Unten sehen Sie meine Ansible-Aufgaben.

---
   - name: 'abcd'
     hosts: 'all'
     gather_facts: 'false'
     tasks:
       - name : 'Copy the script to /tmp/ and set permission'
         copy :
           src : 'a.sh'
           dest: '/tmp'
           mode: '0700'
       - name: 'Execute the script'
         shell: >
           /tmp/a.sh
         register: 'results'
       - name: 'Display output'
         debug:
           msg: '{{ results.stdout }}'
       - name: 'Remove script'
         file:
           path: '/tmp/a.sh'
           state: 'absent'
       - name: 'fetch'
         shell: "ls /tmp/test_Prereq_*"
         register: path_files
         fetch :
          src : '/tmp/"{{item}}"'
          dest : '/home/vj/testout'
         with_items: '{{ path_files.stdout }}'

ansible-playbook report_task.yml --limit

FEHLER! widersprüchliche Aktionsanweisungen: Shell, Fetch

Der Fehler scheint in „/home/vicheruk/report_task.yml“: Zeile 24, Spalte 8 aufgetreten zu sein, kann aber je nach dem genauen Syntaxproblem auch an einer anderen Stelle in der Datei liegen.

Die anstößige Zeile scheint zu sein:

     state: 'absent'
 - name: 'fetch'
   ^ here

Irgendwelche Ideen?

Antwort1

Ihr Playbook ist syntaktisch falsch. fetchist ein Modul und muss in einer eigenen Aufgabe aufgerufen werden.

Außerdem macht es nicht viel Sinn, eine Schleife zu erstellen und in dieselbe Datei zu schreiben. Wahrscheinlich möchten Sie {{ item }}den destParameter ebenfalls einschließen.

Das hier sollte funktionieren:

- name: 'register files'
  shell: "ls /tmp/test_Prereq_*"
  register: path_files
- name: fetch
  fetch:
    src: '/tmp/"{{ item }}"'
    dest: '/home/vj/testout-{{ item }}'
  with_items: '{{ path_files.stdout }}'

verwandte Informationen