Please find the files below.

*vars/main.yml*

XYZ:
- { src: '/tmp/abc/ab.warr', dest: '/tmp/abc/' }

TAR:
- { "src_tar": "/tmp/xx/sample.tar.gz", "dest_tar": "/tmp/sss/" }

*tasks/main.yml*

---
- hosts: all
  vars_files:
      - /etc/ansible/xxx/xyz/vars/main.yml
  tasks:
  - name: test
    unarchive:
      src: "{{ item.src_tar }}"
      dest: "{{ item.dest_tar }}"
    with_items: "{{ TAR }}"


On Tuesday, November 13, 2018 at 2:06:40 PM UTC+5:30, Mohan L wrote:
>
>
> It looks like again you are not placing quotes around dictionary key. Can 
> you please show your code which through this error?
>
> On Tuesday, November 13, 2018 at 12:53:39 PM UTC+5:30, 
> [email protected] wrote:
>>
>> It is unpacking a tar file successfully but at the same time I am getting 
>> below error. Could you please help.
>>
>>
>>  {"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/xxx/xy/tasks/main.yml': line 26, column 5, 
>> but may\nbe elsewhere in the file depending on the exact syntax 
>> problem.\n\nThe offending line appears to be:\n\n\n  - name: test\n    ^ 
>> here\n"}
>>
>>
>> On Tuesday, November 13, 2018 at 12:46:58 PM UTC+5:30, Keshipeddy Anusha 
>> wrote:
>>>
>>> Thank you Mohan that worked for me, but may I know why we need to place 
>>> them in double quotes??
>>>
>>> On Tue, Nov 13, 2018, 11:56 AM Mohan L <[email protected] wrote:
>>>
>>>>
>>>>
>>>> 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
>>>>  
>>>> <https://groups.google.com/d/msgid/ansible-project/95a45bc1-676f-496b-8e03-709c10a845eb%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/eb53a20d-9bcf-49c1-8214-56df4f7e7b15%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to