Hi,
I would like to run the module lineinfile against several files that exist on the remote managed host. I saw in the changelog for 1.4 that i can use the following lookup plugin feature:
" added a fileglob filter that will return files matching a glob pattern. with_items: “/foo/pattern/*.txt | fileglob”
however i did not seem to get it right, see below, could you please let me know what other possible ways to do this, or what i might be doing wrong below
I tried it with a simple debug task as follows:
- action: shell echo “{{ item }}”
with_items: - " /etc/* | fileglob"
register: task
tags: - globtest
- debug: msg=“{{item.item}}”
with_items: task.results
when: item.changed == True
tags: - globtest
however it did not work for me as i expected it, it returned the following :
TASK: [common | shell echo “”] ************************************************
changed: [tlcav117] => (item= /etc/* | fileglob)
TASK: [common | debug msg=“{{item.item}}”] ************************************
ok: [tlcav117] => (item={‘item’: ’ /etc/* | fileglob’, u’delta’: u’0:00:00.002148’, u’cmd’: u’echo " /etc/* | fileglob" ‘, u’end’: u’2013-11-22 23:44:54.216654’, u’stderr’: u’‘, u’stdout’: u’ /etc/* | fileglob’, ‘invocation’: {‘module_name’: ‘shell’, ‘module_args’: u’echo " /etc/* | fileglob"‘}, u’changed’: True, u’rc’: 0, u’start’: u’2013-11-22 23:44:54.214506’}) => {
“item”: {
“changed”: true,
“cmd”: “echo " /etc/* | fileglob" “,
“delta”: “0:00:00.002148”,
“end”: “2013-11-22 23:44:54.216654”,
“invocation”: {
“module_args”: “echo " /etc/* | fileglob"”,
“module_name”: “shell”
},
“item”: " /etc/* | fileglob”,
“rc”: 0,
“start”: “2013-11-22 23:44:54.214506”,
“stderr”: “”,
“stdout”: " /etc/* | fileglob”
},
“msg”: " /etc/* | fileglob"
}
regards
Walid