一、playbook简介
1.playbook
- Playbook:是利用YAML标记语言编写的可重复执行的任务的列表。
- 也可以这么理解,playbook 字面意思,即剧本。现实中由演员按照剧本表演;在Ansible中,这次由计算机进行表演,由计算机安装,部署应用,提供对外服务,以及组织计算机处理各种各样的事情。
- 运行过程: ansbile-playbook命令根据自上而下的顺序依次执行。 注意,运行时要求环境中有清单和配置文件。
- 输出信息:绿色代表执行成功,系统保持原样;黄色代表系统代表系统状态发生改变;红色代表执行失败,显示错误输出。
- 提高输出详细信息:ansible-playbook 默认输出不提供详细任务执行信息。-v 参数提供,共四个级别:
参数 |
作用 |
-v |
显示任务结果 |
-vv |
显示任务结果和任务配置 |
-vvv |
包含关于与受管主机的连接信息 |
-vvvv |
增加连接插件相关的额外详细程度选项(包括受管主机上用于执行脚本的用户及所执行的脚本) |
2. yaml语法
- yaml 格式通常以 yml为扩展名 (xxxx.yml),yaml 对于缩进量没有严格要求,但是有两个基本原则:
(1)处于同一层次结构中同一级别的数据元素必须具有相同的缩进量
(2)如果项目属于其他项目的子项,其缩进量必须大于父项
- 编写yaml文件时,文件的第一行以 “—” (三个英文破折号)开始,表明YMAL文件的开始。以“…”(三个省略号)结束标记,通常可以省略。
- YMAL中的列表元素以 ”-”开头然后紧跟着一个空格,后面为元素内容。
- 核心元素:
hosts:主机;remoute_user: 在远程主机上执行任务的用户;tasks:任务列表;
variables: 变量;templates:包含了模板语法的文本文件;handlers:由特定条件触发的任务;
- playbook中hosts,tasks等元素的表示方法都是键值中间以”:”分隔表示,”:”后面还要增加一个空格。
- playbook本身是一个键值对集合,同一playbook中的键应当使用相同的缩进量。
- yaml注释:在编写时可以在所要注释的字符前使用 “#” 直接注释掉
- yaml字符串:使用单引号或者双引号来设定字符串
例如:this is a string
'this is a string'
"this is a string"
二、编写和运行playbook
1. 简单的playbook示例
1.1 引入:由临时命令改写playbook
- 查看指定用户的临时命令: ansible -m user -a “name=student uid=1000 state=present” servera.lab.example.com
- 改写playbook查看指定用户:
---
- name: Configure User
hosts: servera.lab.example.com
tasks:
- name: Student user
user:
name: student
uid: 1000<