Ansible 从远程获取文件并保持在控制节点上?

Ansible fetch file from remote and keep on control node?

假设我有这个编译角色,它的最后一个任务是从构建服务器获取编译后的二进制文件。

- name: "fetch release tar"
  fetch:
    src: "{{ project_path }}/rel/{{ app_name }}/releases/{{ app_version }}/{{ app_name }}.tar.gz"
    dest: "~/releases/"
    flat: yes

一旦这个角色完成,Ansible 似乎会清理发布目录,大概是因为这些文件是临时的?有什么方法可以让 fetch 永久化?

Tilde expansion 由登录 shell(bash、zsh、ksh 等)处理。 Ansible 不会自行执行任何波浪号扩展,因此在 dest 参数中使用一个会导致未定义的行为。

你应该为你的目的地硬编码一个完整路径,或者你可以使用 Ansible 1.5 中添加的 expanduser filter 来在你的剧本中执行这个波浪号扩展.