I am not clear about what you are trying to achieve here. are you using XYZ in with_items? Please note you have to quote src and dest in XYZ other Ansible will src/dest are variables.
On Tuesday, November 13, 2018 at 2:14:25 PM UTC+5:30, [email protected] wrote: > > 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/1b337e22-35bb-4576-bf54-2ecce27d665d%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
