Ansible复杂模块的使用:Setup模块、Service模块

2021-09-14  本文已影响0人  似朝朝我心

ansible-doc module (可查看相关模块的用法)

一.Setup模块(获取远程主机的相关信息)


使用Filter过滤主机的基本信息;

使用Filter过滤主机的基本信息;

Grep 过滤

-A -B -C 后面都跟阿拉伯数字
-A是显示匹配后和它后面的n行上下文。
-B是显示匹配行和它前面的n行。
-C是匹配行和它前后各n行。

使用grep -A过滤主机的基本信息;



使用grep -C过滤主机的基本信息;



使用grep -B过滤主机的基本信息;

二.Service模块(启动远程主机服务)

检测环境:agent2主机需要挂载光盘



安装httpd服务,因为已经装了,所以执行过程是绿色的,如果没安装过的话,命令执行过程是橘黄色的。



我们可以看到上面查看httpd服务的状态尚未开启,所以是红色的。

远程开启httpd服务和和设置开机自启



在master主机查看agent2主机的httpd服务状态是否开启



Agent2主机也可以进行验证httpd服务是否开启

三.Script 模块(本机脚本放到远程执行)

测试脚本执行
创建test脚本



编辑test脚本文件,给远程机写入内容追加权限。



追加本机执行权限,在远程主机执行脚本

Agent2主机上验收,看看文件是否在远程写入和查看追加的权限是否一致。

测试creates参数


四.Template模块

模板文件存在主机变了,用普遍命令ansible方式个性化copy


Agent2主机进行验收

编写一个简单的剧本,尝试使用 setup模块和hosts变量个性化copy包含变量的文件

创建tpl.j2脚本文件和template.yml剧本文件




编辑剧本文件template.yml



执行剧本文件template.yml,ansible-playbook 执行模块,会在远程主机生成相应模板文件。

Agent1主机查看生成相应模板文件:sysinfo.txt

Agent2主机查看生成相应模板文件:sysinfo.txt


五.模块比较:比较template模块和copy模块

Template和Copy的作用都是为了拷贝文件,Template模块是基于模板的形式输出,但是template模块只能用在playbook中运行。所以Template模块需要搭配剧本文件.yml运行、而.yml文件执行的是.j2脚本。

Copy模块是当作字符输出,template模块是个性化输出


使用Copy模块,没有输出个性化信息,直接当字符内容输出

验收结论:copy模块下没有输出变量的相关信息,而是当字符输出
上一篇下一篇

猜你喜欢

热点阅读