Hi, 
I need to do the following thing.
On the first host, calculate the checksum of a certain file (es. 
/etc/hosts) and save it into a variable, let's say "file_checksum".
On the second host, I would like to calculate newly the checksum and 
compare it with the one from the first host (i.e. the value saved in 
"file_checksum"). And so on with the other hosts of my inventory.
I tried several ways without success. Also run_once on set_fact doesn't 
seem to work (see below the snippet not fully working).
Any Idea how to save a value between hosts in a playbook?
Thanks in advance.
Cheers.
Gaetano

---
- name: check_configuration
  hosts: all
  serial: 1
  gather_facts: yes
    
  tasks:
 
  - name: Execution of the stat on the file
    stat: path=/etc/hosts
    register: stat_results

  - name: Check of file existence
    fail:
      msg: "The file doesn't exist!"
    when: stat_results.stat.exists|bool == false

  - debug: var=file_checksum
    when: file_checksum is defined

  - name: Set fact    
    set_fact:
      file_checksum: "{{ stat_results.stat.checksum }}"
    run_once: true

  - name: Compare of the file file_checksum 
    debug: var="Checksum of the file is {{ file_checksum }} but right is {{ 
stat_results.stat.checksum }}"
    when: file_checksum != "" and (file_checksum != 
stat_results.stat.checksum)

  - name: Compare of the file_checksum with the first value
    fail:
      msg:  var="Checksum of the file is {{ file_checksum }} but right is 
{{ stat_results.stat.checksum }}"
    when: file_checksum != "" and file_checksum != 
stat_results.stat.checksum

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/6473142a-d868-45a3-b929-3f0137415fa7%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to