get_url newbie question

All,

New to ansible and struggling a bit.

I want to use get_url on a list of files. But also due to issues with the server I am downloading from I want to retry the download on failure.
I have something like this:

  • name: Download the packages
    get_url: url=pkg_name.tar.bz2 dest=/opt/DIR_NAME force=yes url_password={{ svn_password }} url_username={{ svn_username }} use_proxy=no
    register: get_url_result
    until: get_url_result.rc == 0
    retries: 5
    delay: 10
    with_items: pkg_list

Is this possible?
I cant seem to get the logic right or find out what the get_url returns in the failure case.
I just want to try no more than 5 times for each pkg in the package list.

Cheers
Dan

A good way to check a return value is:

  • debug: var=registered_variable_name

In this case, you should get an arrayed result.

Let us know what specific problems you are having as I have trouble parsing what “doesn’t work” means usually :slight_smile:

Thanks!

For the benefit of all this seemed to solve it:

get_url: url=pkg_name.tar.bz2 dest=/opt/DIR_NAME force=yes url_password={{ svn_password }} url_username={{ svn_username }} use_proxy=no
register: get_url_result
until: “‘OK’ in get_url_result.msg”
retries: 5
delay: 10
with_items: pkg_list

cheers
Dan

If the file is already present, then the get_url_result.msg does not contain ‘OK’. I had to use
until: “‘OK’ in get_url_result.msg or ‘file already exists’ in get_url_result.msg”

Actually, this works just fine (tested with ansible-playbook 2.1.1.0)

until: get_url_result | succeeded