ansible常用模块之 -- fetch模块 – 从远程节点获取文件_愿随孤月影的博客-爱代码爱编程
ansible常用模块之 -- fetch模块 – 从远程节点获取文件
fetch模块 – 从远程节点获取文件
一、摘要
- 这个模块的工作原理类似于 copy模块,但功能相反。
- 它用于从远程计算机获取文件,并将它们存储在本地的文件树中,文件树按主机名组织。
- dest中已经存在的文件将被覆盖,如果它们与src不同。
- Windows目标也支持此模块。
二、参数
参数 | 选项/默认值 | 描述 |
---|---|---|
dest required | 保存文件的目录。 例如,如果dest目录为/backup,则主机host.example.com上名为/etc/profile的src文件将保存到/backup/host.example.com/etc/profile。主机名基于库存名称。 | |
fail_on_missing boolean | .yes⬅️ . no | 当设置为yes时,如果由于任何原因无法读取远程文件,任务将失败。 在Ansible 2.5之前,设置这个只会在源文件丢失的情况下失败。 默认值在Ansible 2.5中更改为yes。 |
flat boolean | .no⬅️ . yes | 允许您覆盖将hostname/path/to/file 附加到目标的默认行为。 如果dest以’/'结尾,它将使用源文件的基名,类似于复制模块。 如果使用单个主机,或者检索每个主机唯一命名的文件,这将非常有用。 如果使用多个具有相同文件名的主机,则每个主机的文件将被覆盖。 |
src required | 远程系统上要获取的文件。 这必须是一个文件,而不是一个目录。 在以后的版本中可能支持递归抓取。 | |
validate_checksum boolean | .yes⬅️ . no | 在获取文件后,验证源和目标校验和是否匹配 |
三、示例
# 将文件存储到/tmp/fetch /host.example.com/tmp/somefile
- name: Store file into /tmp/fetched/host.example.com/tmp/somefile
fetch:
src: /tmp/somefile
dest: /tmp/fetched
# 直接指定路径
- name: Specifying a path directly
fetch:
src: /tmp/somefile
dest: /tmp/prefix-{{ inventory_hostname }}
flat: yes
# 指定目标路径
- name: Specifying a destination path
fetch:
src: /tmp/uniquefile
dest: /tmp/special/
flat: yes
# 存储在相对于剧本的路径中
- name: Storing in a path relative to the playbook
fetch:
src: /tmp/uniquefile
dest: special/prefix-{{ inventory_hostname }}
flat: yes
官方文档:https://docs.ansible.com/ansible/2.9/modules/fetch_module.html#fetch-module