![¿Cómo puedo descargar la última versión con el módulo Ansible win_get_url?](https://rvso.com/image/769291/%C2%BFC%C3%B3mo%20puedo%20descargar%20la%20%C3%BAltima%20versi%C3%B3n%20con%20el%20m%C3%B3dulo%20Ansible%20win_get_url%3F.png)
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.uri
para obtener la estructura de datos correcta filename
y version
personalizada. 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