# Adding lines with variables

**URL:** <https://forum.ansible.com/t/adding-lines-with-variables/16160>\
**Category:** Ansible Project\
**Created:** [September 9, 2014, 5:01pm UTC](https://forum.ansible.com/t/adding-lines-with-variables/16160 "2014-09-09T17:01:46Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![John\_Oliver](https://avatars.discourse-cdn.com/v4/letter/j/97f17d/32.png) [@John\_Oliver](https://forum.ansible.com/u/John_Oliver)\
**Post date:** [September 9, 2014, 5:01pm UTC](https://forum.ansible.com/t/adding-lines-with-variables/16160/1 "2014-09-09T17:01:46Z")

</div>

ansible 1.6.10

- name: Get vmail home directory

shell: “/bin/grep vmail /etc/passwd | cut -d’:’ -f6”  
register: vmail\_dir

- name: Modify postfix config

lineinfile: dest=/etc/postfix/main.cf  
line=“{{item}}”  
insertafter=‘^mydestination\ =\ $myhostname,\ localhost.$mydomain,\ localhost$’  
with\_items:

- “virtual\_mailbox\_maps = ldap:/etc/postfix/ldap-users.cf”

- “virtual\_mailbox\_base = {{vmail\_dir}}”

- “virtual\_mailbox\_domains = $mydomain”

This fails like::

failed: [test] =\> (item=virtual\_mailbox\_base = {u’changed’: True, u’end’: u’2014-09-09 09:38:11.112576’, u’stdout’: u’/home/vmail’, u’cmd’: u"/bin/grep vmail /etc/passwd | cut -d’:’ -f6", u’rc’: 0, u’start’: u’2014-09-09 09:38:11.109507’, u’stderr’: u’‘, u’delta’: u’0:00:00.003069’, ‘invocation’: {‘module\_name’: ‘shell’, ‘module\_args’: “/bin/grep vmail /etc/passwd | cut -d’:’ -f6”}, ‘stdout\_lines’: [u’/home/vmail’]}) =\> {“failed”: true, “item”: “virtual\_mailbox\_base = {u’changed’: True, u’end’: u’2014-09-09 09:38:11.112576’, u’stdout’: u’/home/vmail’, u’cmd’: u"/bin/grep vmail /etc/passwd | cut -d’:’ -f6", u’rc’: 0, u’start’: u’2014-09-09 09:38:11.109507’, u’stderr’: u’‘, u’delta’: u’0:00:00.003069’, ‘invocation’: {‘module\_name’: ‘shell’, ‘module\_args’: "/bin/grep vmail /etc/passwd | cut -d’:’ -f6"}, ‘stdout\_lines’: [u’/home/vmail’]}”}  
msg: this module requires key=value arguments ([‘dest=/etc/postfix/main.cf’, “line=virtual\_mailbox\_base = {u’changed’: True, u’end’: u’2014-09-09 09:38:11.112576’, u’stdout’: u’/home/vmail’, u’cmd’: u/bin/grep”, ‘vmail’, ‘/etc/passwd’, ‘|’, ‘cut’, ‘-d:’, “-f6, u’rc’: 0, u’start’: u’2014-09-09 09:38:11.109507’, u’stderr’: u’‘, u’delta’: u’0:00:00.003069’, ‘invocation’: {‘module\_name’: ‘shell’, ‘module\_args’: /bin/grep”, ‘vmail’, ‘/etc/passwd’, ‘|’, ‘cut’, ‘-d:’, “-f6}, ‘stdout\_lines’: [u’/home/vmail’]}”, ‘insertafter=^mydestination\ =\ \$myhostname,\ localhost\.\$mydomain,\ localhost$’])

It looks like I’m just not getting the quoting right. I tried enquoting the line with strong quotes and the variable with double quotes.

---

<div class="post-metadata">

**Author:** ![Shaunak\_Kashyap](https://avatars.discourse-cdn.com/v4/letter/s/c68b51/32.png) [@Shaunak\_Kashyap](https://forum.ansible.com/u/Shaunak_Kashyap)\
**Post date:** [September 9, 2014, 5:23pm UTC](https://forum.ansible.com/t/adding-lines-with-variables/16160/2 "2014-09-09T17:23:50Z")

</div>

In the with\_items list, instead of this:

> “virtual\_mailbox\_base = {{vmail\_dir}}”

Try changing it to this:

> “virtual\_mailbox\_base = {{vmail\_dir.stdout\_lines[0]}}”

Shaunak
