上下文
我正在尝试构建一个continuous-integration
平台,并在其中Ansible
playbook
使用从主服务器上maven-dependency-plugin:get
下载工件,该工件将使用模块部署在远程服务器上。Nexus
Ansible
copy
为了制作一个轻量级和通用的剧本,我定义了一个变量app_version
,如果它被定义,我下载给定的版本,如果没有,我从存储库下载最新Nexus
版本。工件被下载到给定目录 ( /tmp/delivery/
) 中。Ansible
在我的任务下方:
- hosts: local
tasks:
- name: "Downloading the war"
shell: >
mvn org.apache.maven.plugins:maven-dependency-plugin:2.10:get -DgroupId=App-DartifactId=App-Dversion={{ app_version if app_version is defined else 'LATEST' }} -Dpackaging=war -DrepositoryId=my-nexus -Ddest=/tmp/delivery/
我的问题
为了确保剧本的通用性,我需要在Ansible
模块中编写一个正则表达式copy
来选择具有该模式的工件,app*.war
但看起来模块不提供这种能力。在我的复制任务下方:
- hosts: agir
tasks:
- name: "Copying the war"
copy: src=/tmp/delivery/app*.war dest=/folder/app.war owner=user group=group mode=0755
如何在模块中使用正则表达式copy
?
我在用着Ansible 1.8