You have to quote the dictionary key as well.
FROM
- { src_tar: '/home/virtual/xx/sample.tar.gz', dest_tar: '/tmp/sss/' }
TO
- { 'src_tar': '/home/virtual/xx/sample.tar.gz', 'dest_tar': '/tmp/sss/' }
Here is the working example. If you write a role and call that role from
playbook then you no need to use var_files section. vars/main.yml is one of
the default ansible search path.
See how my tasks/main.yml :
# cat roles/xyz/tasks/main.yml
---
# tasks file for xyz
- name: Extract /tmp/xx/sample.tar.gz into /tmp/sss
unarchive:
src: "{{ item.src_path }}"
dest: "{{ item.dest_path }}"
with_items: "{{ TAR }}"
#See the vars/main.yml
# cat roles/xyz/vars/main.yml
---
# vars file for xyz
TAR:
- { "src_path": "/tmp/xx/sample.tar.gz", "dest_path": "/tmp/sss/" }
# See the Ansible playbook
# cat /etc/asnible/site.yml
---
- hosts: all
roles:
- xyz
# ansible-playbook site.yml
TASK [xyz : Extract /tmp/xx/sample.tar.gz into /tmp/sss]
*******************************************
ok: [localhost] => (item={u'src_path': u'/tmp/xx/sample.tar.gz',
u'dest_path': u'/tmp/sss/'})
PLAY RECAP
*****************************************************************************************
localhost : ok=2 changed=0 unreachable=0 failed=0
# ls /tmp/xx/sample.tar.gz
/tmp/xx/sample.tar.gz
# ls /tmp/sss/
sample
On Monday, November 12, 2018 at 11:09:08 PM UTC+5:30, [email protected]
wrote:
>
> Hi Team,
>
> I am trying to unarchive a file is failing with below errors. Could
> someone please look into it.
>
> *Playbook:*
>
> ---
>
> - hosts: all
>
> vars_files:
>
> - /etc/ansible/xx/xyz/vars/main.yml
>
> tasks:
>
> - name: test
>
> unarchive:
>
> src: "{{ item.src_tar }}"
>
> dest: “{{ item.dest_tar }}”
>
> with_items: "{{ TAR }}"
>
>
> *vars_files:*
>
>
> TAR:
>
> - { src_tar: '/home/virtual/xx/sample.tar.gz', dest_tar: '/tmp/sss/' }
>
>
> *Error:*
>
> "msg": "The task includes an option with an undefined variable. The error
> was: 'dict object' has no attribute 'dest_tar'\n\nThe error appears to have
> been in '/etc/ansible/xx/xyz/tasks/main.yml': line 23, column 5, but
> may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe
> offending line appears to be:\n\n with_items: \"{{ TAR }}\"\n - name:
> test\n ^ here\n"}
>
--
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/95a45bc1-676f-496b-8e03-709c10a845eb%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.