Ansible——fetch模块

打印 上一主题 下一主题

主题 1013|帖子 1013|积分 3039

目录
参数 
示例1:最基本的用法
示例2:指定目标目录和主机名子目录
示例3:flat 参数设置为 yes
示例4:处置处罚源文件不存在的环境
示例5:验证文件校验和
示例 Playbook
1. 拉取长途主机上的 syslog 文件
2. 直接生存文件到指定路径
3. 处置处罚源文件不存在的环境
4. 递归拉取目录中的文件


 
fetch 模块是 Ansible 中用于从长途主机获取文件并将其复制到控制节点的模块。它的重要作用是从长途主机拉取文件,以供后续处置处罚或分析。
参数 



  • src:

    • 描述:长途主机上要拉取的文件路径。
    • 类型:字符串
    • 必需:是

  • dest:

    • 描述:控制节点上生存文件的目标路径。
    • 类型:字符串
    • 必需:是

  • flat:

    • 描述:如果为 yes,则将所有文件都拉取到一个目录下。
    • 类型:布尔值
    • 默认值:no

  • validate_checksum:

    • 描述:如果为 yes,则在文件传输完成后验证文件的校验和。
    • 类型:布尔值
    • 默认值:no

  • remote_src:

    • 描述:如果为 yes,则从长途主机的路径拉取文件,否则从本田主机拉取文件。
    • 类型:布尔值
    • 默认值:yes

  • fail_on_missing:

    • 描述:如果为 yes,则在源文件不存在时停止任务。
    • 类型:布尔值
    • 默认值:yes


示例1:最基本的用法

从长途主机上拉取 /var/log/syslog 文件,并生存到本地 /tmp 目录中:
  1. ansible all -m fetch -a "src=/var/log/syslog dest=/tmp"
复制代码

示例2:指定目标目录和主机名子目录

从长途主机拉取 /var/log/syslog 文件,并生存到本地 /tmp/hostname/var/log/syslog 路径中,其中 hostname 是长途主机名:
  1. ansible all -m fetch -a "src=/var/log/syslog dest=/tmp"
复制代码

示例3:flat 参数设置为 yes

直接生存文件到 /tmp 目录中,而不创建主机名子目录:
  1. ansible all -m fetch -a "src=/var/log/syslog dest=/tmp/syslog flat=yes"
复制代码

示例4:处置处罚源文件不存在的环境

如果文件不存在,不会失败:
  1. ansible all -m fetch -a "src=/var/log/nonexistentfile dest=/tmp/nonexistentfile fail_on_missing=no"
复制代码

示例5:验证文件校验和

在传输过程中验证文件校验和:
  1. ansible all -m fetch -a "src=/var/log/syslog dest=/tmp/syslog validate_checksum=yes"
复制代码

示例 Playbook


1. 拉取长途主机上的 syslog 文件

  1. - name: Fetch syslog file from remote hosts
  2.   fetch:
  3.     src: /var/log/syslog
  4.     dest: /tmp/logs
  5.     flat: no
  6.     fail_on_missing: yes
  7.     validate_checksum: yes
复制代码
这个任务将从所有长途主机中拉取/var/log/syslog文件,并生存到本地/tmp/logs目录中。如果文件不存在,将会失败。而且拉取时验证文件的校验和。

2. 直接生存文件到指定路径

  1. - name: Fetch file directly to dest without creating subdirectories
  2.   fetch:
  3.     src: /var/log/syslog
  4.     dest: /tmp/syslog
  5.     flat: yes
复制代码
这个任务直接拉取/var/log/syslog文件并生存到/tmp/syslog路径,而不会创建主机名子目录。

3. 处置处罚源文件不存在的环境

  1. - name: Fetch file and handle missing file gracefully
  2.   fetch:
  3.     src: /var/log/nonexistentfile
  4.     dest: /tmp/nonexistentfile
  5.     fail_on_missing: no
复制代码
这个任务试图拉取一个不存在的文件/var/log/nonexistentfile,如果文件不存在,则不会失败。

4. 递归拉取目录中的文件

  1. - name: Fetch directory with recursive fetching
  2.   fetch:
  3.     src: /var/log/
  4.     dest: /tmp/varlogs
  5.     flat: no
  6.     validate_checksum: no
复制代码
这个任务将递归地拉取/var/log/目录中的所有文件,并生存到本地/tmp/varlogs目录下,不验证校验和。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

圆咕噜咕噜

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表