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

文章相關知識
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"
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章