ansible中的常用模块(下)
cron:
功能为计划任务。
常用参数:
参数 含义
minute 分钟
hour 小时
day 天
month 月
weekday 周
name 任务名称
job 任务脚本或命令
disabled yes表示禁用计划任务;no表示启动计划任务
state absent删除计划任务
设定一个名为westostest的定时任务,任务内容为每两分钟显示一次date命令:
查看定时任务状态:
关闭该计划任务,job和name参数都要写上:
查看定时任务状态:
删除westostest计划任务:
查看定时任务状态:
yum_repository:
功能为配置系统软件仓库文件
常用参数:
参数 含义
name 指定仓库名称
baseurl 指定源路径
description 指定仓库描述
file 指定仓库文件名称
enabled 仓库是否启用
gpgcheck 仓库是否检测gpgkey
state 默认值为present表示建立;absent表示删除
查看受控主机的软件仓库:
将软件仓库删除:
再次查看受控主机的软件仓库:
使用yum_repository模块建立appstream软件仓库。注意file后面写的是软件仓库的文件名,不需要加上repo,默认是加上的。description相当于name,即软件仓库名称:
查看/etc/yum.repos.d目录下的内容:
查看软件仓库的配置:
baseos软件仓库:
查看软件仓库:
设置enabled=0参数,表示不启动软件仓库:
查看软件仓库:
设置enabled=1,表示启用软件仓库:
删除baseos软件仓库:
查看软件仓库:
hostname:
功能为管理主机名称。
常用参数:
name+指定主机名称。
查看管理的主机名:
使用hostname模块修改某个主机的主机名:
查看主机名修改情况:
再将主机名修改回来:
dnf:
功能为管理系统中的dnf仓库以及管理软件。
常用参数:
参数 含义
name 指定包
state 指定动作
present 安装
latest 更新
absent 删除
list 列出指定信息
httpd
installed
all
available
disable_gpg_check 禁止gpgkey检测
enablerepo 指定安装包来源
disablerepo 禁用安装包来源
autoremove 是否卸载依赖性;no表示卸载依赖性,只卸载软件本身;yes表示卸载软件的同时卸载依赖性
1.更新vsftpd软件:
state=absent参数表示只卸载软件,不卸载依赖:
ansible westos -m dnf -a 'name="httpd" state=absent'
autoremove参数,表示协助软件的同时,也卸载依赖:
ansible westos -m dnf -a 'name="httpd" state=absetn autoremove=yes'
安装virtualization tools组件:
ansible westos -m dnf -a 'name="@Virtualization Tools" state=present'
service:
功能为管理系统服务状态。
常用参数:
参数 含义
name 指定服务名称
state 指定对服务的动作
started
stoped
restarted
reloaded
enabled 设定服务开机是否启动,yes表示开机启动,no表示开机不启动
开启vsftpd服务:
查看服务状态。注意服务重启时,main pid会发生改变:
重启服务:
mainpid发生改变,服务重启成功:
注意:vsftpd服务默认没有reload
user
功能为帮助我们管理远程主机上的用户,比如创建,修改,删除用户以及为用户创建密钥等操作。
常用参数:
参数 含义
name 必须参数,用户指定要操作的用户名称
group 指定用户所在的基本组
groups 指定用户所在的附加组
append 指定添加附加组,默认值为no
shell 指定用户的默认shell
uid 指定用户的uid号
comment 指定用户的注释信息
state 用于指定用户是否存在于远程主机
present 建立
absent 删除
remove 当删除用户时删除用户的家目录,默认值为no
password 此参数用于指定用户的密码,但密码是明文的;可以使用 “openssl password -6 ‘密码’”生成加密字符
generate_ssh_key 生成sshkey
创建一个用户,然后去查看监控会看到用户建立成功:
移除用户,查看监控:
再建立用户,同时指定用户id:
删除用户,注意不加remove参数删除用户,该用户的家目录依旧存在。建立用户,删除时加上remove参数,表示删除用户的同时删除家目录:
firewad:
功能为管理火墙策略及状态。
常用参数:
参数 含义
zone 火墙的域
service 服务名称
permanent 永久生效
state 状态
ensbled 允许
disabled 拒绝
immediate 立即生效
查看firewalld的状态:
打开防火墙:
查看火墙状态:
设置火墙策略为允许http服务,immediate表示立刻生效。重新加载firewall-cmd,列出火墙策略:
重新加载firewall-cmd:
列出火墙策略:
group:
管理远程主机上的组。
常用参数:
参数 含义
name 用于指定要操作的组名称
state 用于指定组的状态
present 建立
absent 删除
gid 用于指定组的gid
建立一个组:
建立组的时候,指定组的gid:
lineinfile:
功能为对文件进行管理。
常用参数:
参数 含义
path 指定遥操作的文件
line 指定文本内容
regexp 使用正则表达式匹配对应的行,当替换文本时如果有多行文本被匹配到了,则只有最后被匹配到那行文本才会被替换;当删除文本时如果有多行文本被匹配到,那么这些行都会被删除
state 当想要删除对应的文本时需要将state参数的值设置为absent;state的默认值为present
backrefs 当内容无匹配规则时,不对文件做任何更改,默认值为no;向后引用regexp变量信息
insertafter 该参数可以将文本插入到“指定的行”之后;该参数的值可以设置为EOF或者正则表达式
insertbefore 该参数可以将文本插入到“指定的行”之前;该参数的值可以设置为BOF或者正则表达式
backup 是否在修改文件之前对文件进行备份
create 当要操作的文件不存在时,是否创建对应的文件
给/mnt/westos文件中添加内容,注意此时/mnt是不存在westos文件的,所以会报错,line表示再文件里添加的内容:
加上create参数,表示path里的文件不存在的时候,就建立出来:
查看文件中的内容:
在文件中添加内容:
查看内容:
加上regexp参数,表示使用匹配的方式替换文件内容,如果文件有多行时,只有文件中最后一个与匹配内容一致的才会被替换。但是当删除时,所有与匹配内容一致的,都会被删除。所以该命令表示将test换成test1:
replace:
功能该模块可以根据指定的正则表达式替换文件中的字符串,文件中所有被匹配到的字符串都会被替换。
将westos替换为hello:
替换成功:
setup:
功能为调试模块,用于在调试中输出信息。
常用信息:
参数 含义
msg 调试输出的消息
var 将某个任务执行的输出作为变量传递给debug模块,debug会直接将其打印输出
verbosity debug的级别(默认是0级别,会显示全部信息。越往后,显示的信息越简便)
显示输出信息:
设定显示输出信息的级别:
编写一个yml文件,里面是playbook片段。该文件中var表示将某个任务执行的输出作为变量船体给debug模块,debug会直接将其打包输出:
将var替换为msg,相当于echo输出: