我需要从http://archive.apache.org/dist/cassandra/2.2.9/下载ansible tar并将其安装在多个服务器上。
我不想在每个主机上下载文件,而是想在playbook主机上下载该文件,然后将其复制到每个主机进行安装(以节省带宽)。
在我的测试中,我设法将tar从主机复制到服务器
- name: Copy Cassandra
copy:
src: "{{item}}"
dest: "{{tmp_dir}}"
with_items:
- "{{cassandra_tar}}"
但是,在运行剧本之前,我已经手动将cassandra tar放在正确的位置。
我如何进行ansible检查该文件是否存在于playbook主机中,如果它不存在则只下载tar?
答案 0 :(得分:1)
要在您的主机上下载,请指定delegate
,例如:
- name: Download Cassandra
become: no
get_url:
url: "http://archive.apache.org/dist/cassandra/{{cassandra_version}}/{{cassandra_tar}}"
dest: /tmp
delegate_to: 127.0.0.1
become: no
将在主site.yaml
中使用成为帐号,并导致ansible使用playbook用户将文件下载到主机。