ansible常用模組知識彙總(二)

2021-10-03 21:04:31 字數 3894 閱讀 6707

文章相關知識

ansible常用模組知識彙總(一)

模組一:find模組

作用:查詢檔案、目錄

常用引數:

paths:必要引數,指定在哪個目錄查詢。可以指定多個路徑,用逗號隔開。也可以使用path

patterns:指定要查詢的檔名,預設是檔案型別,目錄需要用引數指定。支援萬用字元,如果需要用python的正則去匹配的話,需要使用引數use_regex引數

contains:根據文字的內容進行查詢檔案,有點像grep,支援正規表示式。

recurse:遞迴查詢,預設只會查詢指定目錄下的檔案,如果有子目錄,將不會查詢子目錄裡的檔案,yes表示查詢。

hidden:查詢隱藏檔案

file_type:指定查詢的型別,file(檔案),directory(目錄),any(所有),link(鏈結)

use_regex:預設情況下patterns引數不會解析正規表示式,設定成yes,表示可以解析正規表示式。

age:根據時間範圍查詢,age=-3d表示mtime在3天內的,age=3d表示3天外。單位還有s(秒),m(分),時(h),天(d),星期(w)。

age_stamp:指定時間型別,mtime,ctime,atime。

size:檔案大小,size=-50k,表示小於50k的檔案,常用的單位b,k,m,g,t

get_checksum:當查詢到檔案時,會返回對應檔案的校驗碼,不過需要花費時間生成。

示例:

在/usr目錄下查詢222開頭的檔案,預設不進行遞迴和只查詢檔案

ansible testa -m find -a 'paths=/usr patterns="^222"'

用遞迴檢視/usr下包含222的內容的檔案

ansible testa -m find -a 'paths=/usr contains=".*222.*" recurse=yes'

查詢/tmp目錄下的所有.sh結尾的檔案,包括隱藏檔案,但是不進行遞迴

ansible testa -m find -a 'paths=/tmp/ patterns="*.sh" file_type=any hidden=yes'

patterns根據正規表示式進行查詢

ansible testa -m find -a 'paths=/tmp/ patterns=".*\.sh" use_regex=yes file_type=file'

查詢一天以內的檔案:

ansible testa -m find -a 'paths=/tmp/ age=-1d recurse=yes'

atime查詢

ansible testa -m find -a 'paths=/tmp/ age=-1d age_stamp=atime recurse=yes patterns="*.sh" '

查詢2g以上的檔案

ansible testa -m find -a "paths=/tmp/ size=2g recurse=yes"

模組二:replace

作用:替換文字中的內容,效果和sed -i 『s/ / /g』一樣

常用引數:

path:指定要操作的檔案,也可以用dest

regexp:必須引數,指定乙個python正則,匹配到的都會被替換

replace:最終要替換成的字串

backup:修改之前是否先備份

示例:

ansible testa -m replace -a 'path=/tmp/aaab.txt regexp="aa" replace=xx'

//字串的替換,並不會替換整行

模組三:command

作用:在遠端機器上執行命令。當命令含有管道符,重定向等操作時,包括「>","<","&"這些符號會失效。如果遠端機器是windonws系統,需要使用win_comand模組。

沒有什麼要注意的引數。

示例:

ansible testa -m command -a "ls"
模組四:shell模組

作用:也是在遠端機器上執行命令,不過它支援管道和特殊符號,因為經過/bin/bash

也沒有什麼常用引數。

示例:

ansible testa -m shell -a "/bin/bash /tmp/1.sh"
模組五:script

作用:幫助我們在遠端機器上執行ansible上的指令碼,也就是說不用手動拷貝過去也可以執行。

示例

ansible testa -m script -a "/tmp/2.sh" ///ansible/tmp下的2.sh
模組六:cron

作用:制定任務計畫

常用引數:

minute:分,不使用時預設*

hour:時

day:日

month:月

weekday:周

special_time:值為@reboot時表示重啟時執行,@hourly表示每小時執行

user:指定設定當前任務計畫是屬於哪個使用者,當不使用該引數時,預設為管理員使用者。

job:用於指定計畫的任務中需要實際執行的命令或者指令碼

name:用於設定任務計畫的名稱

state:刪除時,設定state=absent

disabled:當任務計畫有名稱時,可以根據名稱使對應的任務失效(注釋掉對應的任務)。注意,使用該引數時,需要同時指定任務名稱和任務job和任務的時間設定,必須和對應任務完全相同,任務的時間設定會被修改。

backup:yes時,會先備份。

示例:

建立

ansible testa -m cron -a "name='test cron' minute=5 hour=1 job='echo test' "

刪除ansible testa -m cron -a "name='test cron' state=absent"

模組七:service

作用:管理遠端主機上的服務,比如說啟動、停止

常用引數:

name:指定需要操作的服務名稱

state:指定要操作的狀態。started、stopped、restarted、reloaded。

enabled:設定開啟啟動項,yes,no。

示例:

ansible testa -m service -a "name=nginx state=started"

ansible常用模組知識彙總(一)

所有的模組都可以使用下面的命令檢視引數 ansible doc s 模組名 查詢某個模組的引數 ansible doc l 檢視所有模組模組一 ping ping模組用來檢測主機群是否存活,連通。要用的引數比較少,常用的使用 ansible test m ping uroot 也可以不用 u指定使用...

Ansible常用模組

1.ping模組2.ansible command模組是ansible預設模組,主要用於執行linux基礎命令,可以執行遠端伺服器命令執行 任務執行等操作。但command模組不支援變數 重定向 管道符等,這些操作需要用shell模組執行 command模組使用詳解 chdir 執行命令前,切換到目...

ansible常用模組

1.setup 該模組主要用於收集資訊,是通過呼叫facts元件來實現的 ansible doc s setup ansible mysql m setup 檢視mysql伺服器上所有資訊檢視遠端主機基本資訊 ansible all m setup2.ping測試遠端主機執行狀態 ansible a...