![Wie kann ich den neuesten Build mit dem Ansible-Modul „win_get_url“ herunterladen?](https://rvso.com/image/769291/Wie%20kann%20ich%20den%20neuesten%20Build%20mit%20dem%20Ansible-Modul%20%E2%80%9Ewin_get_url%E2%80%9C%20herunterladen%3F.png)
Ich versuche, dieneueste Installationsdateiaus unserem JFrog-Repository mit der folgenden Aufgabe:
- 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
Derzeit verweist die URL auf eine bestimmte Version (d. h. /20.100.999.4112/
)
. Wie Sie sehen, enthält der Ordnername die Versionsnummer des Builds.
Wie kann ich diese Aufgabe so bearbeiten, dass jedes Mal die neueste Datei heruntergeladen wird?
Antwort1
Wie kann ich diese Aufgabe so bearbeiten, dass jedes Mal die neueste Datei heruntergeladen wird?
Ein minimales Beispiel-Playbook (... was der Arbeit in einer Produktionsumgebung ähnelt) wird die neueste Version zuerst abfangen
---
- 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] }}'
Bitte beachten Sie, dass es notwendig sein wird, die Parse- und Split-Aufgabe anzupassen, response.json.uri
um die korrekte filename
und version
benutzerdefinierte Datenstruktur zu erhalten. Nachdem es heruntergeladen werden kann
- 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"
Dokumentation