![Ansible win_get_url 모듈을 사용하여 최신 빌드를 다운로드하려면 어떻게 해야 합니까?](https://rvso.com/image/769291/Ansible%20win_get_url%20%EB%AA%A8%EB%93%88%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EC%B5%9C%EC%8B%A0%20%EB%B9%8C%EB%93%9C%EB%A5%BC%20%EB%8B%A4%EC%9A%B4%EB%A1%9C%EB%93%9C%ED%95%98%EB%A0%A4%EB%A9%B4%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%ED%95%B4%EC%95%BC%20%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
나는 다운로드하려고최신 설치 파일다음 작업을 통해 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"
선적 서류 비치