需要在ansible剧本中使用get_url下载最新的战争文件

时间:2020-04-10 15:22:48

标签: ansible artifactory

需要使用ansible中的get_url方法从Artifactory下载最新的战争文件。

- name: Download war file from artifactory
 get_url:
   url: http://localhost:5040/artifactory/webapp/#/artifacts/browse/tree/General/libs-snapshot-local/devops/ilp1/ILP/0.0.1-SNAPSHOT/ILP-0.0.1-20200408.072920-1.war
   dest: /home/osgdev/devops_capstone/testnew/ILP_BookStoreWorkspace/roles/ansi  

在我尝试过的代码下面。

 name: Download war file from artifactory
 get_url:
   url: http://localhost:5040/artifactory/libs-snapshot-local/devops/ilp1/ILP/0.0.1-SNAPSHOT/latest.war
   dest: /home/osgdev/devops_capstone/testnew/ILP_BookStoreWorkspace/roles/ansicode here

获取以下消息: 任务[ansi:从人工制品下载战争文件] ******************************************** ****************************************************** ****************************************************** *************** 执行任务期间发生异常。要查看完整的回溯,请使用-vvv。错误是:ImportError:没有名为lxml的模块 致命的:[本地主机]:失败! => {“已更改”:false,“ module_stderr”:“回溯(最近一次通话结束):\ n文件\“ / tmp / ansible_NrEV35 / ansible_module_maven_artifact.py \”,行158,位于\ n中,来自lxml import etree \ nImportError :没有名为lxml \ n“的模块,” module_stdout“:”“,” msg“:”模块失败“,” rc“:0} 要重试,请使用:--limit @ / home / osgdev / devops_capstone / testnew / ILP_BookStoreWorkspace / roles / ansi / ansi.retry

PLAY RECAP ********************************************* ****************************************************** ****************************************************** **************************************************** 本地主机:ok = 3更改= 0不可达= 0失败= 1

我有2个或更多文件,但我需要下载最新的战争文件

ILP-0.0.1-20200408.072920-1.war ILP-0.0.1-20200410.071653-2.war

请对此提供帮助。

1 个答案:

答案 0 :(得分:0)

Artifactory REST API支持为发行版和快照下载最新的Maven版本。
对于快照,应在Ansible url字段中使用以下格式:

http://localhost:8081/artifactory/ivy-local/org/acme/1.0-[SNAPSHOT]/acme-1.0-[SNAPSHOT].jar

对于发行版,您应使用以下格式:

http://localhost:8081/artifactory/ivy-local/org/acme/[RELEASE]/acme-[RELEASE].jar