ansible的模块使用

查看ansible都有哪些模块:
image.png

查看模块的用法:
fetch模块:将受管主机中的文件拉取到ansible主机上。

image.png

执行完之后,会自动创建192.168.116.152/etc/这个目录,并将拉取来的文件放到这个目录下。

当返回信息为绿色,change为false,表示ansible没有进行任何操作,没有改变什么。

当返回信息为×××,change为true,表示ansible执行了操作,当前状态已经被anisble改变了目标状态。



copy模块:
copy模块的作用就是拷贝文件,将ansible主机上的问文件拷贝到远程主机上。有很多参数是可以用的,不细说。

参数:force如果远程主机有已经存在同名文件,是否强制覆盖。

           backup当远程主机存在同名文件,是否备份

            owner:指定拷贝到晕车主机后的属主,但是必须要有相应的用户,否则报错,group,mode类似。

image.png



file模块:可以帮助我们完成一些对文件的基本操作,比如:创建文件或目录,删除文件或目录,修改文件权限等。

参数:
path:指定要操作的是文件或目录。

state:指定在远程主机创建的文件类型,目录,文件,链接文件,当值设定为absent,表示删除目标。

src:当state指定创建的是软硬链接文件时,需要指定源文件。

force:创建软硬链接文件时使用,场景一:当源文件不存在时强制创建,场景二:当创建链接文件的目录已经存在与链接文件同名的文件时,相当于删除同名文件创建链接文件,场景三:当创建链接文件的目录已经存在与链接文件同名的文件时,并且源文件并不存在,这是会强制奇幻同名文件为链接文件。

owner,group指定被操作文件的属主,属组。

mode:执行被操作文件的权限。

rescurse:递归创建目录。


image.png


blockinfile模块:可以帮助我们在指定的文件中插入一段文本,这段文本是被标记过的,我们在这段文件上做了几号,以便在以后的操作中可以通过”标记“找到这段文件,然后修改或者删除它。

image.png

例子:

image.png



lineinfile模块

借助lineinfile模块,确保“某一行文本”存在指定的文件中,或者确保从文件中删除指定的“文本”(即确保指定的文本不存在于文件中),还可以根据正则表达式,替换“某一行文本”。

image.png

1.如果指定的文本本来就存在于文件中,则不做任何操作,如果指定的文本不存在文件中,就会将文本插入文件的最后一行中。

image.png


find模块

find模块可以帮助我们在远程主机中查找符号条件的文件,就像find命令一样。



replace模块

replace模块可以根据我们指定的正则表达式替换文件中的字符串,文件中所有被正则匹配到的字符串都会被替换

image.png

image.png

command模块

command模块可以帮助我们在远程主机上执行命令。

注意:使用command模块在远程主机中执行命令时,不会经过远程主机的shell处理,在使用command模块时,如果需要执行的命令中含有重定向,管道符等操作时,这些符号也会失效,比如”<“,">","|",";"和”&“这些符号,如果你需要这些功能,可以参考后面介绍的shell模块,还有一点需要注意,如果远程节点是windows操作系统,则需要使用win_command模块。

image.png


shell模块

shell模块可以帮助我们在远程主机上执行命令,与command模块不同的是,shell模块在远程主机中执行命令时,会经过远程主机上的/bin/sh程序处理。

image.png

使用shell模块可以在远程服务器上执行命令,它支持管道与重定向等符号。如下:使用>符号进行文件覆盖

image.png



script模块

script模块可以帮助我们在远程主机上执行ansible主机上的脚本,也就是说,脚本一直存在于ansible主机本地,不需要手动拷贝到远程主机后再执行。


cron模块

可以帮助我们管理远程主机中的计划任务,功能相当于crontab命令。

了解cron模块的参数之前,先写出一些计划任务的事例,如下:

1.表示每3天执行一次计划文件,于当天1点1分执行,具体任务 输出test

1 1 */3 * * echo test

2.表示每次系统启动后需要执行一次计划任务,具体任务输出test

@reboot echo test

3.表示没小时执行一次计划任务,具体任务输出test字符串

@hourly echo test

image.png


例子:

  1. 在pro远程主机上创建计划任务,任务名称为"test crontab",任务于每天1点5分执行。如下在ansible主机上执行之后会在远程主机生成定时任务,可以使用 crontab -l 查看。

image.png

2.之前已经创建crontab day test这个任务,如要要想注释掉这个任务,可以使用如下命令,使用的时候需要注意,在注释任务时,所有设定需要跟原设定保持一致,包括(name,job,时间段)。否则计划任务的设置将会发生变化。如下:

image.png



service模块:

service模块可以帮助我们管理远程主机上的服务,比如,启动或者停止远程主机中的nginx服务

image.png


image.png


user模块

user模块可以帮助我们管理远程主机上的用户,比如创建用户,修改用户,删除用户,为用户创建密钥等操作。

image.png


image.png

猜你喜欢

转载自blog.51cto.com/11726212/2378182