Thanks very much James for your advise. Was able to achieve what was 
intended, but there seems to be another problem.

Updated the code as below, and, Ansible is passing the list of items to the 
get_url. 

---
- name: Download Properties Files!
  get_url:
    url: "{{ url }}/{{ dir }}/{{ item }}"
    dest: "{{ dest_dir }}/"
  with_items: 
    - files: "{{ lookup('vars', dir ~'_files') }}"

However the get_url step is failing with the below ERROR.

failed: [sometarget-machine.com] (item={u'files': [u'abc1', u'abc2', u'abc3'
]}) => {"changed": false, "dest": "/some/path/onedir", "gid": 0, "group": 
"root", "item": {"files": ["abc1", "abc2", "abc3"]}, "mode": "0755", "msg": 
"Request 
failed", "owner": "root", "response": "HTTP Error 400: Bad request", 
"secontext": "unconfined_u:object_r:default_t:s0", "size": 4096, "state": 
"directory", "status_code": 400, "uid": 0, "url": "https://targetURL/{u'files': 
[u'abc1', u'abc2', u'abc3']}"}

Also, the same get_url on the same target machine works fine with specified 
with_items with a list (as below)

---
- hosts: sametarget
  gather_facts: no
  become: yes

  tasks:
  - name: Download Files
    get_url:
      url: https://targetURL{{ item }}
      dest: some/target/path
    with_items:
    - abc1
    - abc2
    - abc3




On Friday, December 28, 2018 at 3:47:53 PM UTC-5, James Cassell wrote:
>
> Try 
>
> files: "{{ lookup('vars', dir ~ '_files' }}" 
>
> V/r, 
> James Cassell 
>
> On Fri, Dec 28, 2018, at 3:03 PM, Bharath Kumar wrote: 
> > Hello Ansible Experts, 
> > 
> > I am creating a Role, which has a task to download multiple files from 
> an 
> > URL, and, for that, I am using get_url module. Since, get_url cant 
> download 
> > files recursively, I have been trying to use 'with_items'. 
> > 
> > Role Snippets Below. 
> > 
> > /defaults/main.yml 
> > --- 
> > 
> > files: "{{ dir }}_files" 
> > 
> > 
> > /vars/main.yml 
> > --- 
> > onedir_files: 
> >  - abc1 
> >  - abc2 
> >  - abc3 
> > 
> > 
> > twodir_files: 
> >  - xyz1 
> >  - xyz2 
> > 
> > 
> > threedir_files: 
> >  - one 
> >  - two 
> >  - three 
> > 
> > /tasks/main.yml 
> > --- 
> > - name: Download Properties Files! 
> >   get_url: 
> >     url: "{{ url }}/{{ dir }}/{{ item }}" 
> >     dest: "{{ dest_dir }}/" 
> >   with_items: "{{ files }}" 
> > 
> > *ansible-playbook test.yml --extra-vars "dir=one"* 
> > 
> > Running all tasks fine until the get_url, and, failing with below. 
> > 
> > failed: [target_host] (item=onedir_files) => {"changed": false, "dest": 
> > "/some/target/path", "gid": 0, "group": "root", "item": "onedir_files", 
> > "mode": "0755", "msg": "Request failed", "owner": "root", "response": 
> "HTTP 
> > Error 404: org.tmatesoft.svn.core.SVNException: svn: E175007: Path 
> > '/some/path/", "secontext": "unconfined_u:object_r:default_t:s0", 
> "size": 
> > 4096, "state": "directory", "status_code": 404, "uid": 0, "url": 
> > "https://someurl/one/onedir_files"} 
> > 
> > Please let me know where I have gone wrong? or, a best practice or a 
> good 
> > approach for the above problem/requirement. 
> > 
> > Thanks in Advance. 
> > 
> > 
> > 
> > -- 
> > 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] <javascript:>. 
> > To post to this group, send email to [email protected] 
> <javascript:>. 
> > To view this discussion on the web visit 
> > 
> https://groups.google.com/d/msgid/ansible-project/0802a1f2-169c-4695-a26a-9e6ec31a8216%40googlegroups.com.
>  
>
> > 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/7930d991-471c-4b4d-a50c-cf1cbfa7b183%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to