Как загрузить последнюю сборку с модулем Ansible win_get_url?

Как загрузить последнюю сборку с модулем Ansible win_get_url?

Я пытаюсь скачатьпоследний установочный файлиз нашего репозитория JFrog со следующей задачей:

- name: Download Server.msi file from JFrog repository
  ansible.windows.win_get_url:
    url: "{{ jfrog_url }}/Product/20.100.999.4112/x64/Server.msi"
    dest: C:\Server.msi
    url_username: "{{ jfrog_username }}"
    url_password: "{{ jfrog_password }}"
    validate_certs: no

В настоящее время URL-адрес указывает на определенную версию (например, /20.100.999.4112/).
Как вы видите, имя папки содержит номер версии сборки.
Как мне отредактировать эту задачу таким образом, чтобы она каждый раз загружала последний файл?

решение1

Как мне отредактировать эту задачу таким образом, чтобы она каждый раз загружала последний файл?

Минимальный пример книги действий (... что аналогично работе в производственной среде) первым получит последнюю версию

---
- hosts: localhost # controlnode.example.com
  become: false
  gather_facts: false
  
  vars:
  
    jfrog_url: artifactory.example.com
  
  tasks:

  - name: Get latest version from internal repository
    uri:
      url: "https://{{ jfrog_url }}/api/storage/Product/?lastModified"
      method: GET
      url_username: "{{ jfrog_username }}"
      url_password: "{{ jfrog_password }}"
      validate_certs: true
      return_content: true
      status_code: 200
      body_format: json
    register: response
    check_mode: false

  - set_fact:
      filename: '{{ response.json.uri.split("/")[8] }}'
      version: '{{ response.json.uri.split("-")[2] }}'

Обратите внимание, что необходимо будет настроить задачу разбора и разделения response.json.uriдля получения правильной filenameи versionиз пользовательской структуры данных. После этого она может быть загружена

  - name: Download file from internal repository
    delegate_to: windows.example.com
    win_get_url:
      url: "https://{{ jfrog_url }}/Product/{{ filename }}"
      url_username: "{{ jfrog_username }}"
      url_password: "{{ jfrog_password }}"
      dest: "C:\Server-{{ version }}.msi"

Документация

Связанный контент