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)创建计划任务
查看
创建
查看
创建
查看
(2)当创建任务名称存在时会更新内容
查看
(3)在(2)的基础上加上backup
查看
(4)给指定用户添加任务
查看=
(5)暂时注释一个任务
查看
service模块详解
service模块可以帮助我们管理远程主机上的服务,比如启动或停止远程主机中的apache服务
name参数:此参数用于指定需要操作的服务名称,比如httpd
state参数:此参数用于指定服务的状态,比如,我们想要启动远程主机中的httpd,则可以将state的值设置为started,如果想要停止远程主机中的服务,则可以将state的值设量为stopped,此参数的可用值有started、stopped、restarted、 reloaded。
enabled参数:此参数用于指定是否将服务设为开机启动项,设为yes表示将对应服务设I 为开机启动,设为no表示不会开机启动
(1)在远程主机安装httpd并查看状态
(2)远程开启httpd服务
查看
(3)远程关闭httpd
查看
(4)将httpd设成开机启动项
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参数对应的值
(1)创建用户
查看
(2)删除用户并且删除家目录
在删除用户时,不会删除用户的家目录等信息,这是因为remoove参数的默认值为no,如果设置为yes,在删除用户的同时,会删除用户的家目录
查看
(3)改变初始组
在远程主机添加一个ansible组
查看
(4)添加附加组
远程主机添加linux组
查看
(5)在(4)的基础上不加append和加append的区别
先看不加append
查看
添加append
查看
(6)一次添加多个附属组
查看
(7)指定用户的过期时间
(8)指定用户的注释信息
(9)指定用户的密码
查看
(10)生成key相当于在远程主机切换到xx然后执行ssh *******
(11)生成key时指定保存的路径