ansible unarchive module idempotency

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.

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.

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