【发布时间】:2017-03-08 16:21:33
【问题描述】:
在build配置中,CI服务器构建一个Service包,为其分配一个特定的Version,然后将其归档到文件中:Service-Version.tgz.
在 deploy 配置中,同一个 CI 服务器会下载此类可变名称的包。此配置希望复制存档、解压缩并在某个主机上部署服务。
在 Ansible 代码中表达:
- name: Unpack Service on remote host
unarchive: src="{{ src_dir }}/Service-*.tgz" dest="{{ host_dest_dir }}"
理想情况下:Ansible 会尝试匹配模式中的任何文件名。
实际上,这是行不通的:
fatal: [127.0.0.1]: FAILED! => {"changed": false, "failed": true, "msg": "Unable to find '(...)/deploy/Service-*.tgz' in expected paths."}
如何让 Ansible 接受 'src' 的可变名称?
(我想我可以通过 grepping 目录创建一个注册真实姓名的任务,但也许这可以在 Ansible 本身内完成?)
【问题讨论】:
-
是的,您需要使用
find任务获取文件名并使用其结果。
标签: deployment ansible continuous-deployment