目录
ansible常用模块[2]
11.yum_repository
参数 | 含义 |
---|---|
name | 指定仓库名称 |
baseurl | 指定源路径 |
description | 指定仓库描述 |
file | 指定仓库文件名称 |
enabled | 仓库是否启用 |
gpgcheck | 仓库是否检测gpgkey |
state | 默认值present 建立,absent 为删除 |
首先删除node1受控主机的yum源
可以看到已经删除
ansible主机使用yum_repository模块,文件名为westos(自动添加后缀.repo),名字为AppStream,描述为AppStream,路径为http://172.25.254.70/rhel8.2/AppStream,开启使用,不检查gpgcheck,创建
查看受控主机的yum源文件
同样的,添加BaseOS
查看受控主机的yum源文件
12.dnf
作用:管理系统中的dnf仓库及管理软件
常用参数 | 含义 |
---|---|
name | 指定包 |
state | 指定动作,present是安装,latest是更新,absent是删除 |
list | 列出指定信息, httpd、installed、all、available |
disable_gpg_check | 禁用gpgkey检测 |
enablerepo | 指定安装包来源 |
disablerepo | 禁用安装包来源 |
autoremove | 依赖性一起卸载 |
ansible主机使用dnf模块,安装httpd和php,会把依赖性都安装。(卸载只卸载本身的,不卸载依赖性)
再次安装上,卸载时添加了autoremove参数,依赖性一起卸载
加入故意把yum源的gpgcheck改为1,那么将无法安装软件;
有1和0两个选择,分别代表是否进行gpg(GNU Private Guard) 校验,以确定rpm 包的来源是有效和安全的
但是,禁用gpgkey检测就可以正常使用了
如果禁用AppStream这个源,显然无法安装
列出httpd的信息
列出可安装的信息
列出已安装的信息
13.service
作用:管理系统服务状态
参数 | 含义 |
---|---|
name | 指定服务名称 |
state | 指定对服务的动作,包括started,stoped,restarted,reloaded |
enabled | 设定服务开机是否启动,yes开启启动,no开机不启动 |
ansible主机使用dnf模块,为受控主机安装httpd
查看,此时httpd服务还未启动
ansible主机使用service模块,开启httpd,并设置开机自启
设定成功
但此时无法访问westosb的httpd服务,这是因为火墙的设定
14.firewalld
管理火墙
参数 | 含义 |
---|---|
zone | 火墙的域 |
service | 服务名称 |
permanent | 永久生效 |
state | 动作,包括enabled允许,disabled拒绝 |
immediate | 立即生效 |
ansible主机使用firewalld模块,设定public域,允许http服务,永久生效,立即生效
成功添加
此时apache也可以访问到了
15.group
管理远程主机上的组
参数 | 含义 |
---|---|
name | 用于指定要操作的组名称 |
state | 用于指定组的状态,包括present建立,absent删除 |
gid | 用于指定组的gid |
ansible主机使用group模块,建立testgroup这个组,gid设定为666
为了方便看效果,监控/etc/group
查看组信息
修改testgroup组的gid为888
查看组信息
删除testgroup这个组
testgroup这个组已被删除
16.user
作用;管理远程主机上的用户,比如创建用户、修改用户、删除用户、为用户创建密钥对等操作
参数 | 含义 |
---|---|
name | 必须参数,用于指定要操作的用户名称 |
group | 指定用户所在的基本组 |
groups | 指定用户所在的附加组 |
append | 指定添加附加组,默认值为no |
shell | 指定用户的默认 shell |
uid | 指定用户的 uid 号 |
comment | 指定用户的注释信息 |
state | 用户状态,包括present建立,absent删除 |
remove | 当删除用户时删除用户家目录,默认值为no |
password | 此参数用于指定用户的密码。但密码为明文,可以用openssl password -6 '密码’生成加密字符 |
generate_ssh_key | 生成sshkey |
为了方便看效果,监控/etc/passwd、/etc/group和家目录
监控如下
ansible主机使用user模块,建立用户testuser
已建立用户testuser
删除用户testuser
已删除用户testuser,但是家目录还在
再次建立用户testuser,这次删除时添加remove参数,当删除用户时删除用户家目录
可以看到用户和家目录都删除了
可以指定用户的组1002
可以指定用户的附加组48(apache)
成功添加
再添加一个nginx附加祖
发现上一个附加组48没了,只有nginx附加组,因为被覆盖了,相当于(useradd -G)
如果使用append参数,就可以真的添加一个附加组48,相当于(useradd -aG)
成功添加附加组
添加注释信息
添加注释信息,指定shell和uid
成功设定
先通过openssl password -6 '密码’生成加密字符,再指定用户的密码
修改密码成功
node主机切换到testuser用户,发现其没有.ssh目录(存放该用户可以用来登录的 RSA 公钥)
generate_ssh_key:生成sshkey
成功生成公私钥
17.lineinfile
作用:管理受控主机的文件中的行,比如匹配行,整行替换
参数 | 含义 |
---|---|
path | 指定要操作的文件 |
line | 指定文本内容 |
regexp | 使用正则表达式匹配对应的行。替换文本时如果有多行文本都能被匹配,则只有最后面被匹配到的那行文本才会被替换;当删除文本时,如果有多行文本都能被匹配,那么这些行都会被删除 |
state | state的默认值为present,当想要删除对应的文本时需要将state参数的值设置为absent |
backrefs | 默认值为no,如果该为yes,表示当内容无匹配规则时不对文件做任何更改,还有向后引用regexp变量信息的作用 |
insertafter | 借助insertafter参数可以将文本插入到“指定的行”之后,insertafter参数的值可以设置为EOF或者正则表达式 |
insertbefore | 借助insertbefore参数可以将文本插入到“指定的行”之前,insertbefore参数的值可以设置为BOF或者正则表达式 |
backup | 否在修改文件之前对文件进行备份。 |
create | 当要操作的文件并不存在时,是否创建对应的文件 |
监控node节点的/mnt/westosfile文件
ansible主机使用lineinfile模块,创建文件/mnt/westosfile,内容为hello westos;
create:当要操作的文件并不存在时,是否创建对应的文件
成功创建
/mnt/westosfile文件中有hello的行替换为hello linux
替换成功
删除/mnt/westosfile文件中有hello的行
成功删除
/mnt/westosfile文件,创建两行内容
通过playbook的方式,编辑westosfile文件;
line:指定文本内容
成功追加
按列排放
设定成功
使用正则表达式匹配对应的行。删除有hello的行
backrefs:
当backrefs为no时(backrefs默认为no),如果regex没有匹配到行,则添加一行,如果Regexp匹配到行,则修改该行;
当backrefs为yes时,如果regex没有匹配到行,则保持原文件不变,如果regexp匹配到行,则修改该行
未匹配到,添加一行
此时/mnt/westosfile文件内容如下
将/mnt/westosfile文件中有hello的行替换为linux redhat1;
backrefs 默认值为no,如果该为yes,表示当内容无匹配规则时不对文件做任何更改,还有向后引用regexp变量信息的作用;
regexp 使用正则表达式匹配对应的行。替换文本时如果有多行文本都能被匹配,则只有最后面被匹配到的那行文本才会被替换
继续编辑文件如下
/mnt/westosfile文件中,打开向后引用变量信息,匹配h开头的后跟四个任意字符,再后跟一个任意字符,再后跟w,再后跟五个任意字符的格式,替换为第一个变量(即h开头的后跟四个任意字符)
只有第一行符合匹配条件,替换为hello
/mnt/westosfile文件中,给最后一行添加westos end
成功添加
/mnt/westosfile文件中,给第一行添加westos begin
成功添加
18.replace
作用:根据我们指定的正则表达式替换文件中的字符串,文件中所有被匹配到的字符串都会被替换
参数 | 含义 |
---|---|
path | 指定要操作的文件 |
regexp | 指定一个正则表达式,文件中与正则匹配的字符串将会被替换 |
replace | 指定最终要替换成的字符串 |
backup | 是否在修改文件之前对文件进行备份,最好设置为yes |
ansible主机使用replace模块,对/mnt/westos文件,匹配westos,更换为WESTOS,并备份
备份成功
成功替换
19.setup
作用:setup模块用于收集远程主机的一些基本信息;
常用参数:
filter :用于进行条件过滤。如果设置,仅返回匹配过滤条件的信息。
ansible主机使用setup模块,可以看到受控主机的所有的信息
也可以指定查看某个信息
20.debug
作用:调试模块,用于在调试中输出信息
参数 | 含义 |
---|---|
msg | 调试输出的消息 |
var | 将某个任务执行的输出作为变量传递给debug模块,debug会直接将其打印输出 |
verbosity | debug的级别(默认是0级,全部显示) |
ansible主机使用debug模块,输出测试消息hello westos;
设定debug的级别