how to iterate over multiple urls using get_url with Ansible

Sim*_*ate 5 ansible

I have the following block:

  - name: pull several files
    get_url:
      url: https://my-jfrog.jfrog.io/my-jfrog/my-folder/my-file-1.txt
      headers: "X-JFrog-Art-Api:{{ vars.artifactory_api_key }}"
      dest: /var/my-location
Run Code Online (Sandbox Code Playgroud)

but I need to retrieve a lot of files with different names from the same folder, example:

https://my-jfrog.jfrog.io/my-jfrog/my-folder/my-file-2.txt
https://my-jfrog.jfrog.io/my-jfrog/my-folder/some-filename-1.sh
https://my-jfrog.jfrog.io/my-jfrog/my-folder/another-file.jar
Run Code Online (Sandbox Code Playgroud)

How can I iterate over this list so I reuse the same values? (headers and dest?)

β.ε*_*.βε 5

您可以使用 aloop来实现:

- name: pull several files
  get_url:
    url: "{{ item }}"
    headers: "X-JFrog-Art-Api:{{ vars.artifactory_api_key }}"
    dest: /var/my-location
  loop:
    - https://my-jfrog.jfrog.io/my-jfrog/my-folder/my-file-1.txt
    - https://my-jfrog.jfrog.io/my-jfrog/my-folder/my-file-2.txt
    - https://my-jfrog.jfrog.io/my-jfrog/my-folder/some-filename-1.sh
    - https://my-jfrog.jfrog.io/my-jfrog/my-folder/another-file.jar
Run Code Online (Sandbox Code Playgroud)


ses*_*i_c 5

由于/如果除了文件名之外 URL 相同,则可以这样写:

- name: pull several files
  get_url:
    url: "https://my-jfrog.jfrog.io/my-jfrog/my-folder/{{ item }}"
    headers: "X-JFrog-Art-Api:{{ vars.artifactory_api_key }}"
    dest: /var/my-location
  with_items:
    - my-file-1.txt
    - my-file-2.txt
    - some-filename-1.sh
    - another-file.jar
Run Code Online (Sandbox Code Playgroud)