
나는 다운로드하려고최신 설치 파일다음 작업을 통해 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"
선적 서류 비치