You can share values between hosts using the hostvars[host_name] variable,
however I believe in your situation you'll want to run this in separate
plays, as these task will still run on all of your systems (just one system
at a time, due to the serial use).

James Cammarata
Director, Ansible Core Engineering
github: jimi-c

On Wed, Sep 9, 2015 at 1:46 PM, Gaetano Mazzeo <[email protected]>
wrote:

> 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
> <https://groups.google.com/d/msgid/ansible-project/6473142a-d868-45a3-b929-3f0137415fa7%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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/CAMFyvFjMOvQahTQxAbDZ7P7PRb8AdX87PwYVVopExWYet%2B38cg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to