Hey there,

I am spawning some VMs using vagrant (CentOS 6.5 images) and copying a file 
to them.  I only want to copy the file if it does not already exist, so 
that I can repeatedly run my playbooks against the host.

My copy task looks like this:

    - name: Upload the default iptables configuration
      copy: src=iptables.cf dest=/etc/sysconfig/iptables force=no
      sudo: yes

Roughly every 1 in 4 runs -- when reproducing on a fresh VM using "vagrant 
destroy -f myvm; vagrant up myvm; ansible-playbook -i myinventory 
playbook.yml" -- the 'copy' module will report an 'ok' status and *not* 
copy in the file, despite the fact that the file definitely did not exist 
when the task was run.  The rest of the time the task will correctly report 
a 'changed' status and correctly copy the file.

I was unable to reproduce this when running against localhost.  However, 
the behaviour is not dependent on the choice of destination file.  I can 
try "/tmp/nonexistent-file-i-made-up" and it will reproduce with the same 
frequency.  This makes me think that it's not due to a timing issue in the 
VM boot, as was my first thought.

I have no idea why this would happen, or how I can debug further, does 
anyone have an idea?

I am working around it by doing an explicit check before:

    - name: Check for iptables configuration existence
      action: stat path=/etc/sysconfig/iptables
      register: iptables_stat

    - name: Upload the default iptables configuration
      copy: src=iptables.cf dest=/etc/sysconfig/iptables
      sudo: yes
      when: not iptables_stat.stat.exists

This doesn't have the same issue, although it does have the obvious race 
condition.

Dave

-- 
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/46108fc7-d0b7-4aa8-ac58-077a527cac42%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to