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清单
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。