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.pswp.cn/web/66839.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/66839.shtml
英文地址,請注明出處:http://en.pswp.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…

c++迷宮問題(migong)

今天的題目叫“迷宮問題(migong&#xff09;”&#xff0c;是“DFS深度優先搜索 遞歸”一類的。 題目描述 設有一個N*N(2<N<10)方格的迷宮&#xff0c;入口和出口分別在左上角和右上角。迷宮格子中 分別放0和1&#xff0c;0表示可通&#xff0c;1表示不能&#xff0c;入…

機器學習-線性回歸(簡單回歸、多元回歸)

這一篇文章&#xff0c;我們主要來理解一下&#xff0c;什么是線性回歸中的簡單回歸和多元回歸&#xff0c;順便掌握一下特征向量的概念。 一、簡單回歸 簡單回歸是線性回歸的一種最基本形式&#xff0c;它用于研究**一個自變量&#xff08;輸入&#xff09;與一個因變量&…

Git知識分享

一、理解git首先要理清楚下面五個概念&#xff1a; 1、工作區(git add 命令之前的樣子) 2、stash 暫存(暫存工作區和暫存區的更改) 3、暫存區(git add 命令之后的存儲區, 4、本地倉庫(git commit提交的位置) 5、遠程倉庫(git push提交的位置) 二、git常用命令&#xff1a; 1、g…

2024年度技術總結——MCU與MEMS和TOF應用實踐

引言 2024年對我來說是技術成長與突破的一年。在這一年里&#xff0c;我不僅在技術領域拓展了深度和廣度&#xff0c;還通過與客戶合作的實際項目&#xff0c;成功實現了從單一MCU到MCU、MEMS與TOF技術融合的跨越。這一過程中&#xff0c;我深刻認識到&#xff0c;技術的進步不…

一句話,我讓 AI 幫我做了個 P 圖網站!

每到過節&#xff0c;不少小伙伴都會給自己的頭像 P 個圖&#xff0c;加點兒裝飾。 比如圣誕節給自己頭上 P 個圣誕帽&#xff0c;國慶節 P 個小紅旗等等。這是一類比較簡單、需求量卻很大的 P 圖場景&#xff0c;也有很多現成的網站和小程序&#xff0c;能幫你快速完成這件事…

如何打造一個高并發系統?

今天和大家聊聊作為一個后端開發&#xff0c;在實際工作中&#xff0c;我們如何打造一個高并發的系統&#xff1f; 如下圖所示&#xff0c;大概有六個層面&#xff0c;我們結合具體的場景直播間簽到去一一細說。 一、前端 1、打散請求&#xff1a;即把用戶的接口分散一點去請求…

996引擎 - 前期準備-配置開發環境

996引擎 - 前期準備 官網搭建服務端、客戶端單機搭建 開發環境配置后端開發環境配置環境 前端開發環境配置環境 后端簡介前端簡介GUILayoutGUIExport 官網 996傳奇引擎官網 所有資料從官網首頁開始&#xff0c;多探索。 文檔&#xff1a; 996M2-服務端Lua 996M2-客戶端Lua 搭…

迅為RK3568開發板篇OpenHarmony實操HDF驅動控制LED-添加內核編譯

編譯內核時將該 HDF 驅動編譯到鏡像中&#xff0c;接下來編寫驅動編譯腳本 Makefile&#xff0c;代碼如下所示&#xff1a; 加入編譯體系&#xff0c;填加模塊目錄到 drivers/hdf_core/adapter/khdf/linux/Makefile 文件 更多內容可以關注&#xff1a;迅為RK3568開發板篇OpenHa…

生信軟件管家——conda vs pip

pip vs conda&#xff1a; 安裝過python包的人自然兩種管理軟件都用過&#xff0c; Pip install和Conda install在Python環境中用于安裝第三方庫和軟件包&#xff0c;但它們在多個方面存在顯著的區別 總的來說&#xff1a; pip是包管理軟件&#xff0c;conda既是包管理軟件&…

電子電氣工程會議

征稿主題 集中但不限于“電子電氣與信息工程”等其他相關主題。 電子、電氣工程&#xff1a; 電路與電子學、智能芯片、半導體器件、數字信號處理、遙感&#xff0c;雷達和傳感、射頻技術、微電子技術與電子信息、電子工程中的計算智能、電力領域的數據科學技術、智能電力設…

OpenVela 架構剖析:從內核到應用

目錄 一、總體架構概述 二、 內核層 2.1. OpenVela架構的內核基礎 2.2. 內核層的主要職責 2.3. OpenVela對NuttX的擴展與優化 三、系統服務層 2.1. 進程管理 2.2. 內存管理 2.3. 文件系統 2.4. 網絡通信 四、框架層 4.1. 模塊化設計 4.2. API接口 4.3. 組件和服務…

ubuntu 布暑python項目

在Ubuntu上部署Python項目通常包括以下幾個步驟&#xff1a; 1 安裝必要的軟件&#xff1a; 確保系統已經安裝了Python、pip&#xff08;Python包管理工具&#xff09;以及virtualenv&#xff08;可選&#xff0c;用于創建獨立的Python環境&#xff09;。如果還沒有安裝&#…

RV1126畫面質量一:視頻基礎

在聊視頻畫面調節之前&#xff0c;先來認識一下視頻畫面的有一些基礎問題 如今我們所處的時代&#xff0c;是移動互聯網時代&#xff0c;也可以說是 視頻時代 。 從快播到抖音&#xff0c;從“ 三生三世 ” 到 “ 三十而已 ” &#xff0c;我們的生活&#xff0c;被越來越多的 …

準備知識——波紋度和粗糙度區別與聯系

在開始齒輪齒面波紋度開始前&#xff0c;先來學習一下基本概念——波紋度和粗糙度&#xff0c;廢話不多說&#xff0c;直接開始&#xff1a; 什么是表面粗糙度&#xff1f; 表面粗糙度定義為實際表面相對于波谷的較短頻率。如果去觀察加工零件&#xff0c;會注意到它們的表面…

五、華為 RSTP

RSTP&#xff08;Rapid Spanning Tree Protocol&#xff0c;快速生成樹協議&#xff09;是 STP 的優化版本&#xff0c;能實現網絡拓撲的快速收斂。 一、RSTP 原理 快速收斂機制&#xff1a;RSTP 通過引入邊緣端口、P/A&#xff08;Proposal/Agreement&#xff09;機制等&…

寶塔Linux+docker部署nginx出現403 Forbidden

本文主要講述了寶塔docker部署nginx出現403 Forbidden的原因&#xff0c;以及成功部署前端的方法步驟。 目錄 1、問題描述2、問題檢測2.1 檢測監聽端口是否異常2.2 檢測Docker容器是否異常2.2.1 打開寶塔Linux的軟件商店&#xff0c;找到Docker管理器&#xff0c;查看前端容器是…