当前位置: 首页 > news >正文

Ansible——fetch模块

目录

参数 

示例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 目录中:

ansible all -m fetch -a "src=/var/log/syslog dest=/tmp"

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

从远程主机拉取 /var/log/syslog 文件,并保存到本地 /tmp/hostname/var/log/syslog 路径中,其中 hostname 是远程主机名:

ansible all -m fetch -a "src=/var/log/syslog dest=/tmp"

示例3:flat 参数设置为 yes

直接保存文件到 /tmp 目录中,而不创建主机名子目录:

ansible all -m fetch -a "src=/var/log/syslog dest=/tmp/syslog flat=yes"

示例4:处理源文件不存在的情况

如果文件不存在,不会失败:

ansible all -m fetch -a "src=/var/log/nonexistentfile dest=/tmp/nonexistentfile fail_on_missing=no"

示例5:验证文件校验和

在传输过程中验证文件校验和:

ansible all -m fetch -a "src=/var/log/syslog dest=/tmp/syslog validate_checksum=yes"

示例 Playbook

1. 拉取远程主机上的 syslog 文件
- name: Fetch syslog file from remote hostsfetch:src: /var/log/syslogdest: /tmp/logsflat: nofail_on_missing: yesvalidate_checksum: yes

这个任务将从所有远程主机中拉取/var/log/syslog文件,并保存到本地/tmp/logs目录中。如果文件不存在,将会失败。并且拉取时验证文件的校验和。

2. 直接保存文件到指定路径
- name: Fetch file directly to dest without creating subdirectoriesfetch:src: /var/log/syslogdest: /tmp/syslogflat: yes

这个任务直接拉取/var/log/syslog文件并保存到/tmp/syslog路径,而不会创建主机名子目录。

3. 处理源文件不存在的情况
- name: Fetch file and handle missing file gracefullyfetch:src: /var/log/nonexistentfiledest: /tmp/nonexistentfilefail_on_missing: no

这个任务试图拉取一个不存在的文件/var/log/nonexistentfile,如果文件不存在,则不会失败。

4. 递归拉取目录中的文件
- name: Fetch directory with recursive fetchingfetch:src: /var/log/dest: /tmp/varlogsflat: novalidate_checksum: no

这个任务将递归地拉取/var/log/目录中的所有文件,并保存到本地/tmp/varlogs目录下,不验证校验和。

相关文章:

  • 计划任务 之 一次性的计划任务
  • Java与MySQL的数据迁移与同步及事务与性能抉择
  • SQL进阶day12——高级条件语句
  • JMH309【亲测】典藏3D魔幻端游【剑踪3DⅢ】GM工具+开区合区工具+PC客户端+配置修改教程+Win一键服务端+详细外网视频教程
  • 那些年我看过的技术书(持续更新,大佬的成长之路)
  • 输入apt update 报错无法获得锁 /var/lib/apt/lists/lock, 锁正由进程1974持有
  • 微信小程序和支付宝小程序生成二维码
  • Django中drf动态过滤查询
  • 温泉镇旅游微信小程序的设计与实现(论文+源码)_kaic
  • 测试smooth_funct_1d_gauss
  • 算法:94. 二叉树的中序遍历--扩展前中后层序遍历
  • 面试题:String 、StringBuffer 、StringBuilder的区别
  • CDN、CNAME、DNS
  • 二分查找算法:穿越算法迷宫的指南
  • QNX 7.0.0开发总结
  • IE9 : DOM Exception: INVALID_CHARACTER_ERR (5)
  • 【剑指offer】让抽象问题具体化
  • 10个确保微服务与容器安全的最佳实践
  • E-HPC支持多队列管理和自动伸缩
  • Java知识点总结(JDBC-连接步骤及CRUD)
  • Linux gpio口使用方法
  • Lsb图片隐写
  • nodejs调试方法
  • PermissionScope Swift4 兼容问题
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • windows-nginx-https-本地配置
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 闭包--闭包作用之保存(一)
  • 复习Javascript专题(四):js中的深浅拷贝
  • 前端临床手札——文件上传
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 使用putty远程连接linux
  • 物联网链路协议
  • 用mpvue开发微信小程序
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • ​人工智能书单(数学基础篇)
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • #!/usr/bin/python与#!/usr/bin/env python的区别
  • #pragma pack(1)
  • $().each和$.each的区别
  • (10)工业界推荐系统-小红书推荐场景及内部实践【排序模型的特征】
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (独孤九剑)--文件系统
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (转)树状数组
  • (转)为C# Windows服务添加安装程序
  • .htaccess 强制https 单独排除某个目录
  • .NET Core IdentityServer4实战-开篇介绍与规划
  • .net core 的缓存方案
  • .NET I/O 学习笔记:对文件和目录进行解压缩操作
  • .NET Standard 支持的 .NET Framework 和 .NET Core