Ich arbeite in einem Projekt, und wir verwenden Ansible, um eine Bereitstellung eines Clusters von Servern zu erstellen. Eine der Aufgaben, die ich implementieren muss, ist das Kopieren einer lokalen Datei auf den Remote-Host, nur wenn diese Datei lokal existiert. Jetzt versuche ich, dieses Problem zu lösen mit diesemKopieren Sie lokale Datei, wenn vorhanden, mit Ansible
- hosts: 127.0.0.1
connection: local
tasks:
- name: copy local filetocopy.zip to remote if exists
- shell: if [[ -f "../filetocopy.zip" ]]; then /bin/true; else /bin/false; fi;
register: result
- copy: src=../filetocopy.zip dest=/tmp/filetocopy.zip
when: result|success
Bu dies mit der folgenden Meldung fehlschlägt: ERROR: ‚action‘ oder ‚local_action‘ Attribut in Aufgabe „kopieren lokale filetocopy.zip zu entfernten fehlt Wenn existiert "
Ich habe versucht, dies zu erstellen, wenn mit Befehlsaufgabe. Ich habe bereits versucht, diese Aufgabe mit einer local_action zu erstellen, aber ich konnte es nicht funktionieren lassen. Alle Samples, die ich gefunden habe, betrachten eine Shell nicht als local_action, es gibt nur Beispiele von Befehlen, und keiner von ihnen hat etwas anderes als einen Befehl. Gibt es eine Möglichkeit, diese Aufgabe mit Ansible zu erledigen?
Hallo @ sandra-parsick, danke für die Antwort, dies noch mit versagt fehlgeschlagen: [52.11.12.29 -> 127,0 .0.1] => {"failed": true, "parsed": false} [sudo über ansible, key =] passwort: –
dirceusemighini
es scheint, es mag kein sudo. Wie nennst du das Playbook? –
Das Standardmuster hierfür ist das [stat-Modul] (http://docs.ansible.com/stat_module.html), das die Notwendigkeit einer Shell/eines Befehls vermeidet. – tedder42