ansible(八)常用模块( cron,service, user)之系统模块

时间:2024-05-23 17:42:48

cron模块详解

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

5 1 * * * echo test 每天1点5分输出test
1 1 */3 * * echotest 每三天的1点1分输出test
@reboot echo test 每次重启输出test
@hourly echo test 每小时输出test

minute参数:此参数用于设量i计划任务中分钟设定位的值,比如,.上述示例1中分钟设定位的值为5,即minute=5,当不使用此参数时,分钟设定位的值默认为1*"1

hour参数:此参数用于设置i计划任务中小时设定位的值,比如,. 上述示例1中小时设定位的值为1,即hour=1, 当不使用此参数时,小时设定位的值默认为"*"

day参数:此参数用于设置计划任务中日设定位的值,当不使用此参数时,日设定位的值状认为"*"

month参数:此参数用于设置计划任务中月设定位的值,当不使用此参数时,月设定位的值默认为"*"

weekday参数:此参数用于设计划任务中周几设定位的值,当不使用此参数时,周几设定位的值默认为"*“

special time参数:在上述示例3与示例4中,计划任务的时间设定格式为@reboot或者@hourly,@reboot表示重启时执行,@hourly表示每小时执行一次,相当于设置成"0 * * * *",这种@开头的时间设定格式则需要使用special_ time参数进行设置,special time参数的可用值有reboot(重启后)、yearly(每年)、 annually(每年,与yearly相同)、monthly(每月)、weekly(每周)、daily(每天)、hourly(每时)

user参数:此参数用于设f当前计划任务属于哪个用户,当不使用此参数时, 默认为管理员用户
job参数:此参数用于指定计划的任务中需要实际执行的命令或者脚本,比如上例中的"echo test"命令。0表示在整时,整分,整秒,*表示忽略,任意时刻。
name参数:此参数用于设置计划任务的名称,计划任务的名称会在注释中显示,当不指定计划任务的名称时,ansible会状认为计划任务加入注释,注释的内容为Ansible:None , Ansible:test
state参数:当计划任务有名称时,我们可以根据名称修改或删除对应的任务,当删除计划任务时,需要将state的值设置为absent
disabled参数:当计划任务有名称时,我们可以根据名称使对应的任务"失效" (注释掉对应的任务),注意,使用此参数时,除了需要指定任务的名称,还需要同时指定任务的job以及任务的时间设定,而且任务的时间设定必须和对应任务完全相同,否则在注释任务的同时,任务的时间设定会被修改
backup参数:如果此参数的值设置t 为yes,那么当修改或者删除对应的计划任务时,会先对计划任务进行备份,然后再对计划任务进行修改或者删除,cron模块会在远程主机的/tmp目录下创建备份文件,以crontab开头并且随机加入一些字符,具体的备份文件名称会在返回信息的backup_ file字段中看到,推荐将此此参数设置为yes

(1)创建计划任务
ansible(八)常用模块( cron,service, user)之系统模块
查看
ansible(八)常用模块( cron,service, user)之系统模块
创建
ansible(八)常用模块( cron,service, user)之系统模块
查看
ansible(八)常用模块( cron,service, user)之系统模块
创建
ansible(八)常用模块( cron,service, user)之系统模块
查看
ansible(八)常用模块( cron,service, user)之系统模块
ansible(八)常用模块( cron,service, user)之系统模块
(2)当创建任务名称存在时会更新内容
ansible(八)常用模块( cron,service, user)之系统模块
查看
ansible(八)常用模块( cron,service, user)之系统模块
(3)在(2)的基础上加上backup
ansible(八)常用模块( cron,service, user)之系统模块
查看
ansible(八)常用模块( cron,service, user)之系统模块

(4)给指定用户添加任务
ansible(八)常用模块( cron,service, user)之系统模块
查看=
ansible(八)常用模块( cron,service, user)之系统模块

(5)暂时注释一个任务
ansible(八)常用模块( cron,service, user)之系统模块
查看
ansible(八)常用模块( cron,service, user)之系统模块

service模块详解

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

name参数:此参数用于指定需要操作的服务名称,比如httpd
state参数:此参数用于指定服务的状态,比如,我们想要启动远程主机中的httpd,则可以将state的值设置为started,如果想要停止远程主机中的服务,则可以将state的值设量为stopped,此参数的可用值有started、stopped、restarted、 reloaded。
enabled参数:此参数用于指定是否将服务设为开机启动项,设为yes表示将对应服务设I 为开机启动,设为no表示不会开机启动
(1)在远程主机安装httpd并查看状态
ansible(八)常用模块( cron,service, user)之系统模块
ansible(八)常用模块( cron,service, user)之系统模块
(2)远程开启httpd服务
ansible(八)常用模块( cron,service, user)之系统模块
查看
ansible(八)常用模块( cron,service, user)之系统模块
(3)远程关闭httpd
ansible(八)常用模块( cron,service, user)之系统模块
查看
ansible(八)常用模块( cron,service, user)之系统模块
(4)将httpd设成开机启动项
ansible(八)常用模块( cron,service, user)之系统模块

user模块详解

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

name参数:必须参数,用于指定要操作的用户名称,可以使用别名user。
group参数:此参数用于指定用户所在的基本组
gourps参数:此参数用于指定用户所在的附加组,注意,如果说用户已经存在并,且已经拥有多个附加组,那么如果想要继续添加新的附加组,需要结合append参数使用,否则在默认情况下,当再次使用groups参数设置附加组时,用户原来的附加组会被覆盖。
append参数:如果用户原本就存在多个附加组,那么当使用groups参数设置附加组时,当前设置会覆盖原来的附加组设置,如果不想覆盖原来的附加组设置, 需要结合append参数,将append设置为yes, 表示追加附加组到现有的附加组设置,append默认值为no

shell参数:此参数用于指定用户的默认shell
uid参数:此参数用于指定用户的uid号
expires参数:此参数用于指定用户的过期时间,相当于设置/etc/shadow文件中的的第8列, 比如,你想要设置用户的过期日期为2020年12月31日,那么你首先要获取到2020年12月31日的unix时间戳,使用命令"date -d 2020-12-31 +%s"获取到的时间戳为1546185600所以,当设置fexpires= 1546185600时,表示用户的过期时间为2020年12月31日0点0分,设置成功后,查看远程主机的/etc/shadow文件,对应用户的第八列的值将变成17895 (表示1970年1月1日到2020年12月31日的天数,unix时间戳的值会自动转换为天数,我们不用手动的进行换算),目前此参数只支持在Linux和EreeBSD系统中使用
comment参数:此参数用于指定用户的注释信息
state参数:此参数用于指定用户是否存在于远程主机中,可选值有present、absent, 默认值为present,表示用户需要存在,当设置为absent时表示删除用户。
remove参数:当state的值设置为absent时,表示要删除远程主机中的用户,但是在删除用户时,不会删除用户的家目录等信息,这是因为remoove参数的默认值为no,如果设置为yes,在删除用户的同时,会删除用户的家目录,当state= absent并且remove=yes时,相当于执行"userdel -r"命令
password参数:此参数用于指定用户的密码,但是这个密码不能是明文的密码,而是一个对明文密码"加密后"的字符串,相当于/etc/shadow文件中的密码字段,是一个对明文密码进行哈希后的字符串,你可以在python的命令提示符下输入如下命令,生成明文密码对应的加密字符串。import crypt; crypt.crypt(‘666666’)输入上述命令后,即可得到明文密码666666对应的加密字符串
update_ password参数:此参数有两个值可选,always和on_ create,当此参数的值设置为always时表示,如果password参数设置的值与用户当前的加密过的密码字符串不一致,则直接更新用户的密码,状认值即为always,但是当此参数设置为on_ create时,如果password参数设置的值与用户当前的加密过的密码字符串不一致,则不会更新用户的密码字符串,保持之前的密码设定,如果是新创建的用户,即使此参数设置为on_ create, 也会将用户的密码设置i为password参数对应的值
ansible(八)常用模块( cron,service, user)之系统模块
ansible(八)常用模块( cron,service, user)之系统模块
(1)创建用户
ansible(八)常用模块( cron,service, user)之系统模块
查看
ansible(八)常用模块( cron,service, user)之系统模块
(2)删除用户并且删除家目录
在删除用户时,不会删除用户的家目录等信息,这是因为remoove参数的默认值为no,如果设置为yes,在删除用户的同时,会删除用户的家目录
ansible(八)常用模块( cron,service, user)之系统模块
查看
ansible(八)常用模块( cron,service, user)之系统模块
(3)改变初始组
在远程主机添加一个ansible组
ansible(八)常用模块( cron,service, user)之系统模块

ansible(八)常用模块( cron,service, user)之系统模块
查看
ansible(八)常用模块( cron,service, user)之系统模块
(4)添加附加组
远程主机添加linux组
ansible(八)常用模块( cron,service, user)之系统模块
ansible(八)常用模块( cron,service, user)之系统模块
查看
ansible(八)常用模块( cron,service, user)之系统模块
(5)在(4)的基础上不加append和加append的区别

先看不加append
ansible(八)常用模块( cron,service, user)之系统模块
查看
ansible(八)常用模块( cron,service, user)之系统模块
添加append
ansible(八)常用模块( cron,service, user)之系统模块
查看
ansible(八)常用模块( cron,service, user)之系统模块
(6)一次添加多个附属组
ansible(八)常用模块( cron,service, user)之系统模块
查看
ansible(八)常用模块( cron,service, user)之系统模块
(7)指定用户的过期时间
ansible(八)常用模块( cron,service, user)之系统模块
ansible(八)常用模块( cron,service, user)之系统模块
(8)指定用户的注释信息
ansible(八)常用模块( cron,service, user)之系统模块
ansible(八)常用模块( cron,service, user)之系统模块
(9)指定用户的密码

ansible(八)常用模块( cron,service, user)之系统模块
查看
ansible(八)常用模块( cron,service, user)之系统模块
(10)生成key相当于在远程主机切换到xx然后执行ssh *******

ansible(八)常用模块( cron,service, user)之系统模块
ansible(八)常用模块( cron,service, user)之系统模块
(11)生成key时指定保存的路径
ansible(八)常用模块( cron,service, user)之系统模块
ansible(八)常用模块( cron,service, user)之系统模块