ansible自动化运维(二)——playbook的书写

1.编写和运行playbook

1)查看指定用户的临时命令
在这里插入图片描述
将上面的临时指令改写为playbook格式
首先介绍一下playbook书写格式要求:playbook书写是以yaml格式,yaml格式通常以yml为扩展名,yaml对于缩进量没有严格要求,但是有俩个基本原则:
(1)处于同一层次结构中同一级别的数据元素必须具有相同的缩进量。
(2)如果项目属于其他项目的子项,其缩进量必须大于父项。

改写为playbook如下:

vim  user.yml  ##创建user.yml文件

在这里插入图片描述

在这里插入图片描述
注:play本身是一个键值对集合,同一play中的键应当使用相同的缩进量

例子1:
安装apache
首先建立一个目录方便操作,再创建webserver.yml文件
在这里插入图片描述
在这里插入图片描述
现在执行webserver.yml文件
在这里插入图片描述
配置受管主机的yum源:
在这里插入图片描述
现在在ansible 执行playbook安装软件,就可以成功了!!
在这里插入图片描述
在受管主机中查看httpd是否安装上
在这里插入图片描述
例子2
使受管主机的httpd和vsftpd服务设定为开机启动。

vim  service.yml  ##编写服务剧本文件

在这里插入图片描述
在这里插入图片描述
检测受管主机rhel7_node2.westos.com是否将Apache和Vsftpd服务设置为开机自启成功:
在这里插入图片描述
2)提高输出详细程度
==ansible-playbook默认输出不是提供详细任务执行信息。-v参数提供,共有四个级别:
<1> -v ##显示任务结果
在这里插入图片描述
<2> -vv ##显示任务结果和任务配置
<3> -vvv ##包含关于与受管主机的连接信息
<4> -vvvv ##增加连接插件相关的额外详细程度选项(包括受管主机用于执行脚本的用户及所执行的脚本)

3)执行playbook前最好进行语法验证
在这里插入图片描述
在这里插入图片描述
4)执行playbook前可以执行一下空运行

ansible-playbook -C service.yml

在这里插入图片描述
空运行相当于提前预跑,空运行会报告执行这个playbook将会发生什么,但不会改变目标主机

5)例3:安装、配置默认发布页面并启动apache
编写playbook文件:

mkdir demo  ##建立一个新目录,便于后面的进行
cd demo  ##切换进入demo 目录
vim ansible.cfg  ##创建ansible配置目录

在这里插入图片描述

vim inventory  ##创建ansible清单

在这里插入图片描述

扫描二维码关注公众号,回复: 10885272 查看本文章
vim site.yml  ##编写playbook文件

在这里插入图片描述
现在需生成/demo/files/index.html文件来修改默认发布页面
在这里插入图片描述
在这里插入图片描述
以上playbook文件就编写好了!!!
现在检测语法:

ansible-playbook --syntax-check site.yml

在这里插入图片描述
上面语法没有报错,说明语法没有问题!!!
现在来空执行一下,查看最后执行结果将会是什么和判断一下程序是否有一些问题,空执行不会对目标主机做任何更改。
在这里插入图片描述
空执行没有报错,现在开始执行playbook
在这里插入图片描述
执行结果正确,现在测试一下:
查看playbook里面的hosts主机是否开启httpd服务并为开机启动。
在这里插入图片描述
查看playbook里面的hosts主机的默认发布页面是否更改。
在这里插入图片描述
可以通过curl命令来查看默认发布页面是否更改
在这里插入图片描述

6)实施多个play
在这里插入图片描述
在这里插入图片描述
7)练习
<1>列出所有模块

ansible-doc -l  ##列出所有模块

在这里插入图片描述
可以看出ansible的模块一共有3000多个
在这里插入图片描述
<2>列出yum的用法和示例

ansible-doc yum

在这里插入图片描述
在这里插入图片描述
<3>终端中输出yum模块中各参数的用法

ansible-doc -s yum  ##在终端中显示yum模块各参数的用法

在这里插入图片描述
8)PLAYBOOK语法变化
<1>yaml注释
yaml也是以#来注释,如:
在这里插入图片描述
<2>yaml字符串
如:
this is a string
‘this is a string’ ##加单引号
“this is a string” ##加双引号

练习:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
上面完整的playbook已经编写完成了,现在检测语法:
在这里插入图片描述
在最后运行之前可以先执行空运行来查看最后将要出现的结果:

ansible-playbook -C tntranet.yml

在这里插入图片描述
最后运行:

ansible-playbook -v intranet.yml

在这里插入图片描述
在这里插入图片描述
可以看到返回了内容welcome to westos!和状态码200。

发布了35 篇原创文章 · 获赞 0 · 访问量 1405

猜你喜欢

转载自blog.csdn.net/qq_44749796/article/details/105344180