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模块下没有输出变量的相关信息,而是当字符输出