2016-05-07 4 views
0

Ich versuche, den Dateipfad zu validieren, wenn die Datei existiert oder nicht. Ich habe unten Aufgabe geschrieben.Ansible Display anpassen Fehlermeldung mit "stat"

- name: File Validation 
    stat: path={{src_file_path}}{{filename}} get_md5=yes 
    register: file 
- fail: msg="Whoops! File does not exist.!" 
    when: file.stat.exists == False 

„nicht bestanden“ Modul wird unter Fehler werfen

TASK: [deploy-stack | fail msg="Whoops! File does not exist.!"] *************** 
failed: [192.168.36.128] => {"failed": true} 
msg: Whoops! File does not exist.! 

FATAL: all hosts have already failed -- aborting 

ich nicht bekommen, warum Module scheitern, indem er vorgibt, wie es zu vermuten.

Antwort

0
--- # Using stat - Check if a file exist on the remote system 

- hosts: ec2 
    remote_user: ec2-user 
    become_method: sudo 
    gather_facts: no 
    connection: ssh 

    tasks: 

    - name: check if the file is present or not 
     stat: path=/opt/hello.yml 
     register: p 

    - debug: msg="Path exists and is a file" 
     when: p.stat.isreg is defined and p.stat.isreg 

    - debug: msg="do something here as the file is not present" 
     when: p.stat.isreg == False 
... 

# Prints msg when it exists or skips it. 
+0

Dank Chandan, ich versuche, Datei auf dem lokalen Host zu überprüfen. Wenn die Datei existiert, werde ich sie auf den entfernten Server kopieren und die Prüfsumme validieren. In diesem Fall kann ich keine Ausnahme behandeln, wenn der Dateipfad geändert wird. ansible "überspringt" die Validierungs- und Dateikopieraufgabe. – tgcloud

+0

Sie können einfach eine andere Bedingung hinzufügen, um alles zu tun, was Sie wollen, wenn es nicht vorhanden ist, so dass es nicht übersprungen wird - aktualisiert die Antwort. –