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跳转?这个参数搞定

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/66839.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【AI论文】生成式视频模型是否通过观看视频学习物理原理?

摘要:AI视频生成领域正经历一场革命,其质量和真实感在迅速提升。这些进步引发了一场激烈的科学辩论:视频模型是否学习了能够发现物理定律的“世界模型”,或者,它们仅仅是复杂的像素预测器,能够在不理解现实…

论文速读|Matrix-SSL:Matrix Information Theory for Self-Supervised Learning.ICML24

论文地址:Matrix Information Theory for Self-Supervised Learning 代码地址:https://github.com/yifanzhang-pro/matrix-ssl bib引用: article{zhang2023matrix,title{Matrix Information Theory for Self-Supervised Learning},author{Zh…

视觉语言模型 (VLMs):跨模态智能的探索

文章目录 一. VLMs 的重要性与挑战:连接视觉与语言的桥梁 🌉二. VLMs 的核心训练范式:四种主流策略 🗺️1. 对比训练 (Contrastive Training):拉近正例,推远负例 ⚖️2. 掩码方法 (Masking):重构…

数据结构——堆(介绍,堆的基本操作、堆排序)

我是一个计算机专业研0的学生卡蒙Camel🐫🐫🐫(刚保研) 记录每天学习过程(主要学习Java、python、人工智能),总结知识点(内容来自:自我总结网上借鉴&#xff0…

机器学习-线性回归(简单回归、多元回归)

这一篇文章,我们主要来理解一下,什么是线性回归中的简单回归和多元回归,顺便掌握一下特征向量的概念。 一、简单回归 简单回归是线性回归的一种最基本形式,它用于研究**一个自变量(输入)与一个因变量&…

Git知识分享

一、理解git首先要理清楚下面五个概念: 1、工作区(git add 命令之前的样子) 2、stash 暂存(暂存工作区和暂存区的更改) 3、暂存区(git add 命令之后的存储区, 4、本地仓库(git commit提交的位置) 5、远程仓库(git push提交的位置) 二、git常用命令: 1、g…

2024年度技术总结——MCU与MEMS和TOF应用实践

引言 2024年对我来说是技术成长与突破的一年。在这一年里,我不仅在技术领域拓展了深度和广度,还通过与客户合作的实际项目,成功实现了从单一MCU到MCU、MEMS与TOF技术融合的跨越。这一过程中,我深刻认识到,技术的进步不…

一句话,我让 AI 帮我做了个 P 图网站!

每到过节,不少小伙伴都会给自己的头像 P 个图,加点儿装饰。 比如圣诞节给自己头上 P 个圣诞帽,国庆节 P 个小红旗等等。这是一类比较简单、需求量却很大的 P 图场景,也有很多现成的网站和小程序,能帮你快速完成这件事…

如何打造一个高并发系统?

今天和大家聊聊作为一个后端开发,在实际工作中,我们如何打造一个高并发的系统? 如下图所示,大概有六个层面,我们结合具体的场景直播间签到去一一细说。 一、前端 1、打散请求:即把用户的接口分散一点去请求…

996引擎 - 前期准备-配置开发环境

996引擎 - 前期准备 官网搭建服务端、客户端单机搭建 开发环境配置后端开发环境配置环境 前端开发环境配置环境 后端简介前端简介GUILayoutGUIExport 官网 996传奇引擎官网 所有资料从官网首页开始,多探索。 文档: 996M2-服务端Lua 996M2-客户端Lua 搭…

迅为RK3568开发板篇OpenHarmony实操HDF驱动控制LED-添加内核编译

编译内核时将该 HDF 驱动编译到镜像中,接下来编写驱动编译脚本 Makefile,代码如下所示: 加入编译体系,填加模块目录到 drivers/hdf_core/adapter/khdf/linux/Makefile 文件 更多内容可以关注:迅为RK3568开发板篇OpenHa…

生信软件管家——conda vs pip

pip vs conda: 安装过python包的人自然两种管理软件都用过, Pip install和Conda install在Python环境中用于安装第三方库和软件包,但它们在多个方面存在显著的区别 总的来说: pip是包管理软件,conda既是包管理软件&…

ubuntu 布暑python项目

在Ubuntu上部署Python项目通常包括以下几个步骤: 1 安装必要的软件: 确保系统已经安装了Python、pip(Python包管理工具)以及virtualenv(可选,用于创建独立的Python环境)。如果还没有安装&#…

RV1126画面质量一:视频基础

在聊视频画面调节之前,先来认识一下视频画面的有一些基础问题 如今我们所处的时代,是移动互联网时代,也可以说是 视频时代 。 从快播到抖音,从“ 三生三世 ” 到 “ 三十而已 ” ,我们的生活,被越来越多的 …

准备知识——波纹度和粗糙度区别与联系

在开始齿轮齿面波纹度开始前,先来学习一下基本概念——波纹度和粗糙度,废话不多说,直接开始: 什么是表面粗糙度? 表面粗糙度定义为实际表面相对于波谷的较短频率。如果去观察加工零件,会注意到它们的表面…

五、华为 RSTP

RSTP(Rapid Spanning Tree Protocol,快速生成树协议)是 STP 的优化版本,能实现网络拓扑的快速收敛。 一、RSTP 原理 快速收敛机制:RSTP 通过引入边缘端口、P/A(Proposal/Agreement)机制等&…

宝塔Linux+docker部署nginx出现403 Forbidden

本文主要讲述了宝塔docker部署nginx出现403 Forbidden的原因,以及成功部署前端的方法步骤。 目录 1、问题描述2、问题检测2.1 检测监听端口是否异常2.2 检测Docker容器是否异常2.2.1 打开宝塔Linux的软件商店,找到Docker管理器,查看前端容器是…

光交箱哑资源巡检过程中都要检查哪些设备,怎样实现智能化管理

一、光交箱哑资源管理现状 光交箱哑资源主要包括光纤、光缆、接头盒、配线架等设备。这些设备在通信网络中起着至关重要的作用,但由于缺乏智能化的监控和诊断能力,管理难度较大。 效率低下:人工巡检的频率和覆盖范围有限,资源清…

机器学习(5):支持向量机

1 介绍 支持向量机(Support Vector Machine,简称 SVM)是一种监督学习算法,主要用于分类和回归问题。SVM 的核心思想是找到一个最优的超平面,将不同类别的数据分开。这个超平面不仅要能够正确分类数据,还要使…

百度APP iOS端磁盘优化实践(上)

01 概览 在APP的开发中,磁盘管理已成为不可忽视的部分。随着功能的复杂化和数据量的快速增长,如何高效管理磁盘空间直接关系到用户体验和APP性能。本文将结合磁盘管理的实践经验,详细介绍iOS沙盒环境下的文件存储规范,探讨业务缓…