ansible unarchive module idempotency

164 views
Skip to first unread message

Michael

unread,
Oct 15, 2020, 11:54:14 AM10/15/20
to Ansible Project
I have a Jenkins pipeline that automates an install using Ansible. One of the steps includes copying a tar file to the target host using the unarchive module. This step finishes with a 'changed' status if rerun and so isn't idempotent as would be preferred. Is there a way to perform a check on the target and not redo this step? Any suggestions would be appreciated

code snippet:
- name: unarchive gg installer to target gg server
  unarchive:
    src: "{{ pkg_src }}/{{ ogg_installer }}"
    dest: "{{ ogg_product_dir }}"
  become: yes
  become_method: sudo
  become_user: ogg

Thanks.

Dick Visser

unread,
Oct 15, 2020, 12:26:24 PM10/15/20
to ansible...@googlegroups.com
The unarchive module is idempotent.
So if your task reports as changed, then this means you are either
unpacking a different archive each time, or your unpacked tree has
changed somehow.

Try adding a stat task right before the unarchive task and watch the
checksum to verify.
> --
> 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 ansible-proje...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/63058728-4124-46c9-aca6-125877b5e901n%40googlegroups.com.



--
Dick Visser
Trust & Identity Service Operations Manager
GÉANT

Michael

unread,
Oct 15, 2020, 2:38:09 PM10/15/20
to Ansible Project
adding the option "exclude: target_directory" appears to solve the issue. It recognizes the target already exists and doesn't make any changes. Thanks for your input Dick
Reply all
Reply to author
Forward
0 new messages