ansible 之 fetch


Fetch 模塊

用途:用於從 遠程主機 中拷貝文件到 管理主機

注意:不能拷貝目錄

官方文檔

[root@ansible ~]# ansible-doc fetch   
> FETCH    (/usr/lib/python2.7/site-packages/ansible-2.8.0.dev0-py2.7.egg/ansible/modules/files/fetch.py)

        This module works like [copy], but in reverse. It is used for fetching files from remote machines and storing them locally in a file tree, organized by hostname.
        This module is also supported for Windows targets.

  * This module is maintained by The Ansible Core Team
  * note: This module has a corresponding action plugin.

OPTIONS (= is mandatory):

= dest
        A directory to save the file into.
        For example, if the `dest' directory is `/backup' a `src' file named `/etc/profile' on host `host.example.com', would be saved into
        `/backup/host.example.com/etc/profile'.


- fail_on_missing
        When set to `yes', the task will fail if the remote file cannot be read for any reason.
        Prior to Ansible 2.5, setting this would only fail if the source file was missing.
        The default was changed to `yes' in Ansible 2.5.
        [Default: True]
        type: bool
        version_added: 1.1

- flat
        Allows you to override the default behavior of appending hostname/path/to/file to the destination.
        If `dest' ends with '/', it will use the basename of the source file, similar to the copy module.
        Obviously this is only handy if the filenames are unique.
        [Default: False]
        type: bool
        version_added: 1.2

= src
        The file on the remote system to fetch.
        This `must' be a file, not a directory.
        Recursive fetching may be supported in a later release.


- validate_checksum
        Verify that the source and destination checksums match after the files are fetched.
        [Default: True]
        type: bool
        version_added: 1.4


NOTES:
      * When running fetch with `become', the [slurp] module will also be used to fetch the contents of the file for determining the remote checksum. This effectively
        doubles the transfer size, and depending on the file size can consume all available memory on the remote or local hosts causing a `MemoryError'. Due to this
        it is advisable to run this module without `become' whenever possible.
      * Prior to Ansible 2.5 this module would not fail if reading the remote file was impossible unless `fail_on_missing' was set.
      * In Ansible 2.5 or later, playbook authors are encouraged to use `fail_when' or `ignore_errors' to get this ability. They may also explicitly set
        `fail_on_missing' to `no' to get the non-failing behaviour.
      * This module is also supported for Windows targets.

AUTHOR: Ansible Core Team, Michael DeHaan
        METADATA:
          status:
          - stableinterface
          supported_by: core
        

EXAMPLES:
- 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

參數解析

  • src

從遠程主機上獲取的文件,必須是文件,不能為目錄,例如:/etc/profile

  • dest

保存文件的目錄。即從遠程主機 中獲取到文件后,存放 於管理主機 的目錄。
例如: dest的目錄為 /backupsrc的文件問 /etc/profile,在主機清單文件中(默認為/etc/ansible/hosts)該主機的名稱為host.example.com,則文件拷貝到 控制主機 后,目錄為/backup/host.example.com/etc/profile

  • fail_on_missing

類型:bool
默認值:True
當設置為 Trueyes,如果由於不明因素導致從遠程主機中不能讀取到該文件,則會顯示 fail

  • validate_checksum

類型:bool
默認值:True

控制主機獲取到文件后,確認源文件與獲取到的文件的 checksums 是否一致

  • flat

類型: bool
默認值:false


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM