ansible常用模块知识汇总(二)

Connie ·
更新时间:2024-09-21
· 987 次阅读

文章相关知识
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

需要 登录 后方可回复, 如果你还没有账号请 注册新账号
相关文章