# Syntax error in Variable

**URL:** <https://forum.ansible.com/t/syntax-error-in-variable/13426>\
**Category:** Ansible Project\
**Created:** [September 6, 2013, 11:52am UTC](https://forum.ansible.com/t/syntax-error-in-variable/13426 "2013-09-06T11:52:00Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Mark\_Maas](https://avatars.discourse-cdn.com/v4/letter/m/7c8e57/32.png) [@Mark\_Maas](https://forum.ansible.com/u/Mark_Maas)\
**Post date:** [September 6, 2013, 11:52am UTC](https://forum.ansible.com/t/syntax-error-in-variable/13426/1 "2013-09-06T11:52:00Z")

</div>

Hi All,

Having trouble with this bit of code; it’s intended for AIX, but the error happens before the module get’s sent to the AIX server. I’m thinking I made a syntax error somewhere but I cannot find it ☹

> * * *
> 
> ###############
> 
> # AIX hosts krijgen deze behandeling
> 
> - name: Oracle | Creer structuur  
> action: file  
> path=/opt/oracle/admin/network/{{ item }}/  
> state=directory  
> recurse=yes  
> owner=oracle  
> group=dbamgr  
> with\_items:
> 
> - admin
> 
> - log
> 
> - trace  
> tags:
> 
> - orabestanden
> 
> - name: Oracle | Kopieer bestanden  
> action: copy  
> backup=yes  
> src=/media/storage/DM/Transfer/Oracle/SQLNet/aix/{{ item }}  
> force=yes  
> dest=/opt/oracle/admin/network/admin/{{ item }}  
> owner=oracle  
> group=dbamgr  
> with\_items: orafiles  
> register: nieuweversiegeplaatst  
> tags:
> 
> - orabestanden
> 
> - name: Oracle | Ophalen welke versie’s van Oracle er zijn  
> action: shell ls /opt/oracle/product/  
> register: oracle\_versions  
> tags:
> 
> - orabestanden
> 
> - name: Oracle | Admin pad uitvogelen  
> action: shell find /opt/oracle/product/{{ item }} -type d -name admin | grep -i network | egrep -v “11g|filemap”  
> with\_items:
> 
> - ${oracle\_versions.stdout\_lines}  
> register: oracle\_admin\_path  
> tags:
> 
> - orabestanden
> 
> - name: Oracle | Verwijder links/bestanden  
> action: file  
> state=absent  
> dest={{ item[0] }}/{{ item[1] }}  
> with\_nested:
> 
> - ${oracle\_admin\_path.stdout\_lines}
> 
> - $orafiles  
> when: nieuweversiegeplaatst.changed  
> tags:
> 
> - orabestanden

> - name: Oracle | Creeer link’s  
> action: file  
> state=link  
> src=/opt/oracle/admin/network/admin/{{ item[1] }}  
> dest={{ item[0] }}/{{ item[1] }}  
> owner=oracle  
> group=dba  
> with\_nested:
> - ${oracle\_admin\_path.stdout\_lines}
> - $orafiles  
> when: nieuweversiegeplaatst.changed  
> tags:
> - orabestanden

But when I run it, I get this:

> TASK: [Oracle | Verwijder links/bestanden] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
> fatal: [taixkaren] =\> cannot resolve: ${oracle\_admin\_path.stdout\_lines}  
> FATAL: all hosts have already failed – aborting

The strange thing is, I have the same code which is intended for Linux:

> * * *
> 
> ###############
> 
> # Linux hosts krijgen deze behandeling
> 
> - name: Oracle | Creer structuur  
> action: file  
> path=/usr/lib/oracle/xe/app/oracle/network/{{item}}/  
> state=directory  
> recurse=yes  
> owner=oracle  
> group=dba  
> with\_items:
> - admin
> - log
> - trace  
> tags:
> - orabestanden
> - name: Oracle | Kopieer bestanden  
> action: copy  
> backup=yes  
> src=/media/storage/DM/Transfer/Oracle/SQLNet/linux/{{item}}  
> force=yes  
> dest=/usr/lib/oracle/xe/app/oracle/network/admin/{{item}}  
> owner=oracle  
> group=dba  
> with\_items: orafiles  
> register: nieuweversiegeplaatst  
> tags:
> - orabestanden

> - name: Oracle | Admin pad uitvogelen  
> action: shell find /usr/lib/oracle/xe/app/oracle/product/ -type d -name admin | grep -i network  
> register: oracle\_admin\_path  
> tags:
> 
> - orabestanden
> 
> - name: Oracle | Verwijder links/bestanden  
> action: file  
> state=absent  
> dest={{ item[0] }}/{{ item[1] }}  
> with\_nested:
> 
> - ${oracle\_admin\_path.stdout\_lines}
> 
> - $orafiles  
> when: nieuweversiegeplaatst.changed  
> tags:
> 
> - orabestanden
> 
> - name: Oracle | Creeer link’s  
> action: file  
> state=link  
> src=/usr/lib/oracle/xe/app/oracle/network/admin/${item[1]}  
> dest={{item[0] }}/{{ item[1] }}  
> owner=oracle  
> group=dba  
> with\_nested:
> 
> - ${oracle\_admin\_path.stdout\_lines}
> 
> - $orafiles  
> when: nieuweversiegeplaatst.changed  
> tags:
> 
> - orabestanden

Which is working flawlessly!

If the reader would take a look for me, much apreciated!

Mark

---

<div class="post-metadata">

**Author:** ![Michael\_DeHaan2](https://avatars.discourse-cdn.com/v4/letter/m/da6949/32.png) [@Michael\_DeHaan2](https://forum.ansible.com/u/Michael_DeHaan2)\
**Post date:** [September 6, 2013, 12:31pm UTC](https://forum.ansible.com/t/syntax-error-in-variable/13426/2 "2013-09-06T12:31:36Z")

</div>

I see you are still using old style variables, which you should not be.

This may not be related to your error, you can just do:

with\_items: oracle\_admin\_path.stdout\_lines

---

<div class="post-metadata">

**Author:** ![Mark\_Maas](https://avatars.discourse-cdn.com/v4/letter/m/7c8e57/32.png) [@Mark\_Maas](https://forum.ansible.com/u/Mark_Maas)\
**Post date:** [September 6, 2013, 12:39pm UTC](https://forum.ansible.com/t/syntax-error-in-variable/13426/3 "2013-09-06T12:39:07Z")

</div>

Are you sure? Because with that change, it fails replacing it as a variable completely:

This:

> - name: Oracle | Admin pad uitvogelen  
> action: shell find /opt/oracle/product/{{ item }} -type d -name admin | grep -i network | egrep -v “11g|filemap”  
> with\_items:
> - oracle\_versions.stdout\_lines  
> register: oracle\_admin\_path  
> tags:
> - orabestanden

Now results in:

> TASK: [Oracle | Admin pad uitvogelen] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
> ESTABLISH CONNECTION FOR USER: mmaas on PORT 22 TO taixkaren  
> EXEC /bin/sh -c ‘mkdir -p $HOME/.ansible/tmp/ansible-1378470995.11-131618494508055 && chmod a+rx $HOME/.ansible/tmp/ansible-1378470995.11-131618494508055 && echo $HOME/.ansible/tmp/ansible-1378470995.11-131618494508055’  
> REMOTE\_MODULE command find /opt/oracle/product/oracle\_versions.stdout\_lines -type d -name admin | grep -i network | egrep -v “11g|filemap” #USE\_SHELL  
> PUT /tmp/tmpmUk5H7 TO /home/mmaas/.ansible/tmp/ansible-1378470995.11-131618494508055/command  
> EXEC /bin/sh -c ‘sudo -k && sudo -H -S -p “[sudo via ansible, key=qlenjvuklluvnzwmqzwwmygmmbbotvln] password: " -u root /bin/sh -c '”’“‘/usr/bin/python /home/mmaas/.ansible/tmp/ansible-1378470995.11-131618494508055/command; rm -rf /home/mmaas/.ansible/tmp/ansible-1378470995.11-131618494508055/ \>/dev/null 2\>&1’”‘"’’  
> failed: [taixkaren] =\> (item=oracle\_versions.stdout\_lines) =\> {“changed”: true, “cmd”: "find /opt/oracle/product/oracle\_versions.stdout\_lines -type d -name admin | grep -i network | egrep -v "11g|filemap" ", “delta”: “0:00:00.017525”, “end”: “2013-09-06 14:36:54.850331”, “item”: “ **oracle\_versions.stdout\_lines** ”, “rc”: 1, “start”: “2013-09-06 14:36:54.832806”}  
> stderr: find: bad status-- **/opt/oracle/product/oracle\_versions.stdout\_lines**  
> FATAL: all hosts have already failed – aborting

Thanks,  
Mark

---

<div class="post-metadata">

**Author:** ![Mark\_Maas](https://avatars.discourse-cdn.com/v4/letter/m/7c8e57/32.png) [@Mark\_Maas](https://forum.ansible.com/u/Mark_Maas)\
**Post date:** [September 6, 2013, 12:45pm UTC](https://forum.ansible.com/t/syntax-error-in-variable/13426/4 "2013-09-06T12:45:39Z")

</div>

> Are you sure? Because with that change, it fails replacing it as a variable completely:

Yes you are, because it is not:

> with\_items:
> 
> - oracle\_versions.stdout\_lines

But it’s:

> with\_items: oracle\_versions.stdout\_lines

Ok check!

---

<div class="post-metadata">

**Author:** ![Mark\_Maas](https://avatars.discourse-cdn.com/v4/letter/m/7c8e57/32.png) [@Mark\_Maas](https://forum.ansible.com/u/Mark_Maas)\
**Post date:** [September 6, 2013, 12:50pm UTC](https://forum.ansible.com/t/syntax-error-in-variable/13426/5 "2013-09-06T12:50:36Z")

</div>

But I’m still not getting the original problem solved 😉

This:

> - name: Oracle | Verwijder links/bestanden  
> action: file  
> state=absent  
> dest={{ item[0] }}/{{ item[1] }}  
> with\_nested:
> - ${oracle\_admin\_path.stdout\_lines}
> - $orafiles  
> when: nieuweversiegeplaatst.changed  
> tags:
> - orabestanden

Results in:

> TASK: [Oracle | Verwijder links/bestanden] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
> fatal: [taixkaren] =\> cannot resolve: ${oracle\_admin\_path.stdout\_lines}  
> FATAL: all hosts have already failed – aborting

And this:

> - name: Oracle | Verwijder links/bestanden  
> action: file  
> state=absent  
> dest={{ item[0] }}/{{ item[1] }}  
> with\_nested:  
> oracle\_admin\_path.stdout\_lines  
> orafiles  
> when: nieuweversiegeplaatst.changed  
> tags:
> - orabestanden

results in:

> TASK: [Oracle | Verwijder links/bestanden] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
> fatal: [taixkaren] =\> cannot resolve: oracle\_admin\_path.stdout\_lines orafiles  
> FATAL: all hosts have already failed – aborting

Still not getting it 😉

---

<div class="post-metadata">

**Author:** ![Michael\_DeHaan2](https://avatars.discourse-cdn.com/v4/letter/m/da6949/32.png) [@Michael\_DeHaan2](https://forum.ansible.com/u/Michael_DeHaan2)\
**Post date:** [September 6, 2013, 1:00pm UTC](https://forum.ansible.com/t/syntax-error-in-variable/13426/6 "2013-09-06T13:00:27Z")

</div>

with\_nested:

- oracle\_admin\_path.stdout\_lines
- orafiles

You’re missing the “-” before each item in the list.

---

<div class="post-metadata">

**Author:** ![Mark\_Maas](https://avatars.discourse-cdn.com/v4/letter/m/7c8e57/32.png) [@Mark\_Maas](https://forum.ansible.com/u/Mark_Maas)\
**Post date:** [September 11, 2013, 7:34am UTC](https://forum.ansible.com/t/syntax-error-in-variable/13426/7 "2013-09-11T07:34:28Z")

</div>

> with\_nested:
> 
> - oracle\_admin\_path.stdout\_lines
> - orafiles
> 
> You’re missing the “-” before each item in the list.

I’ve tried this as well:

> - name: Oracle | Verwijder links/bestanden  
> action: file  
> state=absent  
> dest={{ item[0] }}/{{ item[1] }}  
> with\_nested:
> - oracle\_admin\_path.stdout\_lines
> - orafiles  
> when: nieuweversiegeplaatst.changed  
> tags:
> - orabestanden

But still no luck:

> TASK: [Oracle | Verwijder links/bestanden] \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*  
> fatal: [taixkaren] =\> cannot resolve: oracle\_admin\_path.stdout\_lines  
> FATAL: all hosts have already failed – aborting

Thanks,  
Mark

---

<div class="post-metadata">

**Author:** ![Michael\_DeHaan2](https://avatars.discourse-cdn.com/v4/letter/m/da6949/32.png) [@Michael\_DeHaan2](https://forum.ansible.com/u/Michael_DeHaan2)\
**Post date:** [September 11, 2013, 12:28pm UTC](https://forum.ansible.com/t/syntax-error-in-variable/13426/8 "2013-09-11T12:28:12Z")

</div>

This is hard to debug without seeing your entire playbook structure.

Can you produce a minimal example you can share on github?
