ansible.builtin.fetch 模块 – 从远程节点获取文件
注意
此模块是 ansible-core
的一部分,包含在所有 Ansible 安装中。在大多数情况下,即使没有指定 集合关键字,您也可以使用简短的模块名称 fetch
。但是,我们建议您使用 完全限定的集合名称 (FQCN) ansible.builtin.fetch
,以便轻松链接到模块文档并避免与可能具有相同模块名称的其他集合发生冲突。
摘要
此模块的工作方式类似于 ansible.builtin.copy,但方向相反。
它用于从远程机器获取文件并将它们存储在本地文件树中,按主机名进行组织。
此模块还支持 Windows 目标。
注意
此模块具有相应的 操作插件。
参数
参数 |
注释 |
---|---|
要将文件保存到的目录。 例如,如果 |
|
如果设置为 在 Ansible 2.5 之前,设置此值只会因源文件丢失而失败。 默认值在 Ansible 2.5 中更改为 选择
|
|
允许您覆盖将主机名/路径/到/文件附加到目标的默认行为。 如果 这在处理单个主机时很有用,或者在检索每个主机唯一命名的文件时很有用。 如果使用多个具有相同文件名的主机,则该文件将被覆盖以针对每个主机。 选择
|
|
要获取的远程系统上的文件。 这 *必须* 是一个文件,而不是目录。 递归获取可能会在以后的版本中得到支持。 |
|
验证文件获取后源和目标校验和是否匹配。 选择
|
属性
属性 |
支持 |
描述 |
---|---|---|
支持:完全支持 |
表示此模块具有相应的操作插件,因此选项的某些部分可以在控制器上执行 |
|
支持:不支持 |
支持与 |
|
支持:不支持 |
强制执行不按主机执行的“全局”任务,这将绕过按主机进行的模板化、序列化、节流和其他循环考虑因素 条件将按使用 此操作在锁步策略之外将无法正常工作 |
|
支持:完全支持 |
可以在 check_mode 下运行并返回更改状态预测,而无需修改目标,如果不受支持,则将跳过操作。 |
|
支持:完全支持 |
将在 diff 模式下返回有关已更改内容(或可能需要更改内容(在 check_mode 下))的详细信息 |
|
平台: posix, windows |
可以针对其进行操作的目标操作系统/系列 |
|
支持:不支持 |
使用 Ansible 的严格文件操作函数以确保适当的权限并避免数据损坏 |
|
支持:不支持 |
可以自动解密 Ansible 加密的 vault 文件 |
备注
注意
使用
become
运行 fetch 时,ansible.builtin.slurp 模块也将用于获取文件的内容以确定远程校验和。这实际上使传输大小加倍,并且根据文件大小,可能会消耗远程或本地主机上的所有可用内存,从而导致MemoryError
。因此,建议尽可能在没有become
的情况下运行此模块。在 Ansible 2.5 之前,除非设置了
fail_on_missing
,否则此模块在读取远程文件时不会失败。在 Ansible 2.5 或更高版本中,鼓励剧本作者使用
fail_when
或ignore_errors
来实现此功能。他们还可以显式地将fail_on_missing
设置为false
以获得非失败行为。
另请参阅
另请参阅
- ansible.builtin.copy
将文件复制到远程位置。
- ansible.builtin.slurp
从远程节点获取文件。
示例
- name: Store file into /tmp/fetched/host.example.com/tmp/somefile
ansible.builtin.fetch:
src: /tmp/somefile
dest: /tmp/fetched
- name: Specifying a path directly
ansible.builtin.fetch:
src: /tmp/somefile
dest: /tmp/prefix-{{ inventory_hostname }}
flat: yes
- name: Specifying a destination path
ansible.builtin.fetch:
src: /tmp/uniquefile
dest: /tmp/special/
flat: yes
- name: Storing in a path relative to the playbook
ansible.builtin.fetch:
src: /tmp/uniquefile
dest: special/prefix-{{ inventory_hostname }}
flat: yes