欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-06-02 18:50:06
...

文章相关知识
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"
相关标签: 运维linux 运维