¿Cómo puedo descargar la última versión con el módulo Ansible win_get_url?

¿Cómo puedo descargar la última versión con el módulo Ansible win_get_url?

Intento descargar elúltimo archivo de instalacióndesde nuestro repositorio JFrog con la siguiente tarea:

- 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

Actualmente, la URL apunta a una versión específica (es decir, /20.100.999.4112/).
Como puede ver, el nombre de la carpeta contiene el número de versión de la compilación.
¿Cómo puedo editar esta tarea de manera que descargue el archivo más reciente cada vez?

Respuesta1

¿Cómo puedo editar esta tarea de manera que descargue el archivo más reciente cada vez?

Un libro de jugadas de ejemplo mínimo (... que es similar a trabajar en un entorno de producción) capturará primero la última versión

---
- 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] }}'

Tenga en cuenta que será necesario ajustar la tarea de análisis y división response.json.uripara obtener la estructura de datos correcta filenamey versionpersonalizada. Después de que se pueda descargar

  - 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"

Documentación

información relacionada