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

Ansible fetch模块详解:轻松从远程主机抓取文件

在自动化运维的过程中,我们经常需要从远程主机下载文件到本地,以便进行分析或备份。Ansiblefetch模块正是为了满足这一需求而设计的,它可以帮助我们轻松地从远程主机获取文件,并将其保存到本地指定的位置。在这篇文章中,我们将详细探讨如何使用fetch模块,以及它在实际工作中的常见应用场景。

目录

    • 📝fetch模块的功能
    • 📝fetch模块的常用参数
    • 📝`fetch`模块的基本用法
      • ✍️从远程主机抓取文件
      • ✍️抓取多个文件
      • ✍️保留原有目录结构
      • ✍️文件不存在时的错误处理
        • ✍️使用checksum验证文件
    • 📝fetch模块的高级用法
      • ✍️下载目录
        • ✍️使用`register`和`debug`输出文件信息
    • 📝总结
    • 推荐阅读

📝fetch模块的功能

fetch模块的主要功能是从目标主机(被管理主机)中抓取指定的文件或目录,并将其下载到控制主机的指定路径下。常见的应用场景包括:

  1. 从远程主机抓取日志文件进行分析。

  2. 从远程主机下载配置文件进行备份。

  3. 抓取诊断数据或错误信息供后续处理。

📝fetch模块的常用参数

参数描述类型必填
src远程主机上的文件或目录路径字符串
dest本地控制主机保存文件的路径字符串
flat是否保留目录结构,yes保留,no不保留布尔值
fail_on_missing如果远程文件不存在,是否报错,yesno布尔值
validate_checksum是否验证文件的checksum,默认yes布尔值

📝fetch模块的基本用法

✍️从远程主机抓取文件

最简单的用法是从远程主机上抓取一个文件并保存到本地控制主机上。

ansible node1 -m fetch \
-a "src=/var/log/auth.log dest=/tmp/"

在这个例子中,我们从 node1 组中的主机上指定要下载的文件路径(通过 src 参数),然后指定这些文件在本地控制主机上的保存位置(通过 dest 参数)。文件将会被下载并保存到你指定的目录中。

执行完上述的命令后,输出如下图的结果:

✍️抓取多个文件

如果需要抓取多个文件,建议采用playbook的方式,并利用with_items循环来轻松实现对多个文件的处理。这种方式既灵活又高效。

- name: 从远程主机抓取多个日志文件hosts: node1tasks:- name: 从远程主机抓取多个日志文件ansible.builtin.fetch:src: "{{ item }}"dest: /tmp/logs/with_items:- /var/log/mail.log- /var/log/syslog.2.gz

然后你只需要运行下面的命令:

ansible-playbook download.yml

执行完上述命令后,输出如下结果:

✍️保留原有目录结构

默认情况下,fetch模块会将远程文件下载到目标路径下,是保留原有的目录结构。如果需要不保留远程主机的目录结构,可以使用flat: yes参数。

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

此时,文件syslog将不被保留原有的目录结构,并下载到/tmp/syslog。如下图所示:

✍️文件不存在时的错误处理

如果远程文件不存在,fetch模块会报错。可以通过fail_on_missing: no来防止错误抛出,控制任务继续执行。


ansible node1 -m fetch \
-a "src=/var/log/nonexistent.log dest=/tmp/logs/ fail_on_missing=no"
✍️使用checksum验证文件

在抓取文件时,可以启用validate_checksum来验证文件的checksum,确保文件的完整性。


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

📝fetch模块的高级用法

✍️下载目录

fetch模块不仅支持下载单个文件,还支持下载整个目录。

ansible node1 -m fetch \
-a "src=/home/user/data/ dest=/tmp/data_backup/"

此命令会将远程主机上的/home/user/data/目录及其内容递归下载到本地控制主机的/tmp/data_backup/目录中,保留目录结构。

✍️使用registerdebug输出文件信息

可以使用register来保存抓取的文件信息,并通过debug模块查看抓取的文件路径等详细信息。

- name: 从远程主机抓取文件并保存结果hosts: node1tasks:- name: 从远程主机抓取文件并保存结果ansible.builtin.fetch:src: /var/log/syslogdest: /tmp/log/register: fetched_file- name: 输出抓取的文件信息ansible.builtin.debug:var: fetched_file

📝总结

Ansible的fetch模块为我们提供了简单高效的远程文件下载解决方案。无论是抓取单个文件、多个文件,还是整个目录,它都能轻松完成任务。通过结合使用flatfail_on_missing等参数,我们可以灵活应对各种场景。掌握fetch模块,将极大提高我们的自动化运维效率。

推荐阅读


  • 告别手动编辑:如何用Python快速创建Ansible hosts文件?
  • 一分钟学会Ansible cron模块,高效管理你的定时任务
  • 打造更安全的Linux系统:玩转PAM配置文件
  • Ansible实战:如何正确选择command和shell模块?
  • 运维效率倍增!Ansible Copy 模块必知必会操作
  • 如何在Ansible中轻松实现复杂SSH跳转?这个参数搞定

相关文章:

Ansible fetch模块详解:轻松从远程主机抓取文件

在自动化运维的过程中,我们经常需要从远程主机下载文件到本地,以便进行分析或备份。Ansible的fetch模块正是为了满足这一需求而设计的,它可以帮助我们轻松地从远程主机获取文件,并将其保存到本地指定的位置。在这篇文章中&#xf…...

wireshark工具简介

目录 1 wireshark介绍 2 wireshark抓包流程 2.1 选择网卡 2.2 停止抓包 2.3 保存数据 3 wireshark过滤器设置 3.1 显示过滤器的设置 3.2 抓包过滤器 4 wireshark的封包列表与封包详情 4.1 封包列表 4.2 封包详情 参考文献 1 wireshark介绍 wireshark是非常流行的网络…...

51单片机——按键控制LED流水灯

引言 在电子制作和嵌入式系统学习中,51 单片机是一个经典且入门级的选择。按键控制 LED 流水灯是 51 单片机的一个基础应用,通过这个实例,我们可以深入了解单片机的输入输出控制原理。 51 单片机简介 51 单片机是对所有兼容 Intel 8051 指…...

【opencv】第9章 直方图与匹配

第9章 直方图与匹配 9.1 图像直方图概述 直方图广泛运用于很多计算机视觉运用当中,通过标记帧与帧之间显著的边 缘和颜色的统计变化,来检测视频中场景的变化。在每个兴趣点设置一个有相近 特征的直方图所构成“标签”,用以确定图像中的兴趣点。边缘、色…...

HTML5 Web Worker 的使用与实践

引言 在现代 Web 开发中,用户体验是至关重要的。如果页面在执行复杂计算或处理大量数据时变得卡顿或无响应,用户很可能会流失。HTML5 引入了 Web Worker,它允许我们在后台运行 JavaScript 代码,从而避免阻塞主线程,保…...

MVCC底层原理实现

MVCC的实现原理 了解实现原理之前,先理解下面几个组件的内容 1、 当前读和快照读 先普及一下什么是当前读和快照读。 当前读:读取数据的最新版本,并对数据进行加锁。 例如:insert、update、delete、select for update、 sele…...

基于ESP32-IDF驱动GPIO输出控制LED

基于ESP32-IDF驱动GPIO输出控制LED 文章目录 基于ESP32-IDF驱动GPIO输出控制LED一、点亮LED3.1 LED电路3.2 配置GPIO函数gpio_config()原型和头文件3.3 设置GPIO引脚电平状态函数gpio_set_level()原型和头文件3.4 代码实现并编译烧录 一、点亮LED 3.1 LED电路 可以看到&#x…...

【优选算法】9----长度最小的子数组

----------------------------------------begin-------------------------------------- 铁子们,前面的双指针算法篇就算告一段落啦~ 接下来是我们的滑动窗口篇,不过有一说一,算法题就跟数学题一样,只要掌握方法,多做…...

LabVIEW太阳能照明监控系统

在公共照明领域,传统的电力照明系统存在高能耗和维护不便等问题。利用LabVIEW开发太阳能照明监控系统,通过智能控制和实时监测,提高能源利用效率,降低维护成本,实现照明系统的可持续发展。 ​ 项目背景 随着能源危机…...

MongoDB中单对象大小超16M的存储方案

在 MongoDB 中,单个文档的大小限制为 16MB。如果某个对象(文档)的大小超过 16MB,可以通过以下几种方案解决: 1. 使用 GridFS 适用场景:需要存储大文件(如图像、视频、文档等)。 原…...

三维激光扫描-用智能检测系统提升效率

当下,企业对生产效率和质量控制的要求越来越高。传统的检测方法往往难以满足高精度、快速响应的需求。三维激光扫描技术结合智能检测系统,为工业检测带来了革命性的变革。 传统检测方法的局限性 传统检测方法主要依赖于人工测量和机械检测工具&#xf…...

css遇到的一些问题

1.vw单位,在PC端vw单位是包含右侧滚轮的宽度,而在移动端不会包含滚轮的长度,在PC端运用vw单位进行居中对齐,会比实际偏左盒子偏右一点,因为内容区域并不包含滚轮。 2.运用媒体查询进行响应式布局式,媒体查询…...

【langgraph】ubuntu安装:langgraph:未找到命令

langgraph 在ubuntu24.04 参考:langgraph运行:报错: (05_ep_dev) root@k8s-master-pfsrv:/home/zhangbin/perfwork/01_ai/05_ep_dev/expert# langgraph dev langgraph:未找到命令查看langraph的安装情况 pip show langgraph...

mysql 学习2 MYSQL数据模型,mysql内部可以创建多个数据库,一个数据库中有多个表;表是真正放数据的地方,关系型数据库 。

在第一章中安装 ,启动mysql80 服务后,连接上了mysql,那么就要 使用 SQL语句来 操作mysql数据库了。那么在学习 SQL语言操作 mysql 数据库 之前,要对于 mysql数据模型有一个了解。 MYSQL数据模型 在下图中 客户端 将 SQL语言&…...

小识JVM堆内存管理的优化机制TLAB

JVM(Java虚拟机)在堆内存分配空间时,TLAB(Thread Local Allocation Buffer,线程本地分配缓存区)是一种重要的内存管理优化技术。以下是对TLAB的详细解释: 一、TLAB的定义 TLAB是JVM堆内存管理…...

ToDesk云电脑、顺网云、网易云、易腾云、极云普惠云横测对比:探寻电竞最佳拍档

一、云电脑:电竞新宠崛起 在电竞游戏不断发展的今天,硬件性能成为了决定游戏体验的关键因素。为了追求极致的游戏画面与流畅度,玩家们往往需要投入大量资金购置高性能电脑。然而,云电脑技术的出现,为玩家们提供了一种…...

学习ASP.NET Core的身份认证(基于JwtBearer的身份认证10)

基于Cookie传递token的主要思路是通过用户身份验证后,将生成的token保存到Response.Cookies返回客户端,后续客户端访问服务接口时会自动携带Cookie到服务端以便验证身份。之前一直搞不清楚的是服务端程序如何从Cookie读取token进行认证(一般都…...

vscode环境中用仓颉语言开发时调出覆盖率的方法

在vscode中仓颉语言想得到在idea中利用junit和jacoco的覆盖率,需要如下几个步骤: 1.在vscode中搭建仓颉语言开发环境; 2.在源代码中右键运行[cangjie]coverage. 思路1:编写了测试代码的情况(包管理工具) …...

OLED--软件I2C驱动__标准库和HAL库

一、标准库---版本一 OLED.c--标准库 #include "stm32f10x.h" #include "OLED_Font.h"/*引脚配置*/ #define OLED_W_SCL(x) GPIO_WriteBit(GPIOB, GPIO_Pin_8, (BitAction)(x)) #define OLED_W_SDA(x) GPIO_WriteBit(GPIOB, GPIO_Pin_9, (BitAction)(x…...

【设计模式-行为型】观察者模式

一、什么是观察者模式 说起观察者模式,不得不说一位观察者模式的高级应用者,朱元璋。不知道大家有没有看过胡军演的电视剧《朱元璋》。这部剧背景是元朝末年,天下大乱,朱元璋自幼父母双亡,沦为乞丐,后遁入空…...

ubuntu搭建nfs服务centos挂载访问

在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...

如何在看板中体现优先级变化

在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...

将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?

Otsu 是一种自动阈值化方法,用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理,能够自动确定一个阈值,将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...

Spring是如何解决Bean的循环依赖:三级缓存机制

1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间‌互相持有对方引用‌,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要: 近期,在使用较新版本的OpenSSH客户端连接老旧SSH服务器时,会遇到 "no matching key exchange method found"​, "n…...

RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill

视觉语言模型(Vision-Language Models, VLMs),为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展,机器人仍难以胜任复杂的长时程任务(如家具装配),主要受限于人…...

基于PHP的连锁酒店管理系统

有需要请加文章底部Q哦 可远程调试 基于PHP的连锁酒店管理系统 一 介绍 连锁酒店管理系统基于原生PHP开发,数据库mysql,前端bootstrap。系统角色分为用户和管理员。 技术栈 phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 个人中…...

0x-3-Oracle 23 ai-sqlcl 25.1 集成安装-配置和优化

是不是受够了安装了oracle database之后sqlplus的简陋,无法删除无法上下翻页的苦恼。 可以安装readline和rlwrap插件的话,配置.bahs_profile后也能解决上下翻页这些,但是很多生产环境无法安装rpm包。 oracle提供了sqlcl免费许可&#xff0c…...

Copilot for Xcode (iOS的 AI辅助编程)

Copilot for Xcode 简介Copilot下载与安装 体验环境要求下载最新的安装包安装登录系统权限设置 AI辅助编程生成注释代码补全简单需求代码生成辅助编程行间代码生成注释联想 代码生成 总结 简介 尝试使用了Copilot,它能根据上下文补全代码,快速生成常用…...