2017-08-07 2 views
-1

Es gibt eine Datei: test.txt auf remote1 und remote2, die Version mit Datum hat und diese Datei enthält sind nicht behoben.Ansible> Datei vergleichen mit stat Modul: Überprüfen müssen Datei hat den gleichen Wert oder nicht

$ cat test.txt 
Release_P1.11_2017-08-02-094316 
02/08/2017 

Ich brauche zu überprüfen:

  1. , wenn die Datei gleichen enthält, dann über weitere Aufgaben bewegen.
  2. Wenn die Datei enthält nicht die gleichen sind, dann stoppen Sie die Aufgaben.
--- 
    - name: latest file check 
    stat: 
     path: /tmp/test.txt 
     get_checksum: yes 
    register: test_file_check 

    - debug: 
     var: test_file_check.stat.checksum 

Nun, wenn Datei enthält die gleichen sind, sind Prüfsummenwert ansonsten gleich es nicht gleiche hat. aber ich finde die Lösung nicht heraus.

+0

Was genau ist Ihr Problem? Wie es ist, sieht es so aus "tu es für mich!" - Anfrage – techraf

+0

@techraf Ich kann den Prüfsummenwert der Datei kennen, aber wie überprüfe ich? –

+0

http://docs.ansible.com/ansible/latest/playbooks_conditionals.html – techraf

Antwort

1

Alles, was Sie brauchen, ist zweite Zeitmessung und wenn Zustand

- hosts: remote_1 
    tasks: 
    - name: first file check 
     stat: 
     path: /tmp/test.txt 
     get_checksum: yes 
     register: test_file_check_1 

........................................... 
- hosts: remote_2 
    tasks: 
    - name: next check 
     stat: 
     path: /tmp/test.txt 
     get_checksum: yes 
     register: test_file_check_2 
........................................... 

- name: Block run only if file has no changes 
    command: /bin/true 
    when: test_file_check_1.stat.checksum == test_file_check_2.stat.checksum 

http://docs.ansible.com/ansible/latest/playbooks_conditionals.html

Verwandte Themen