Ansible 的 Playbook模式
一、playbook 概述
1.1、什么是playbook
playbook 称之为剧本,故名思意,就是将要做的事/流程实现编排好,要具体执行任务的就是,就照着剧本排练好的流程执行就行了
剧本是ansible的精髓所在。
1.2 为何要用playbook
简单的任务用ad-hoc命令行模式就行,复杂的任务还是要用playbook,playbook还有很多命令行模式没有的高级功能,接下来我们来一一介绍
1.3 playbook的构成
一个playbook需要按照yaml格式组织到文件中,playbook是由一个或多个 play 组成的列表。
play由以下部分构成
- 1、Target Section:
- hosts:用于指定在哪些主机上运行 play
- name:当前play的名字/描述,可以省略
- remote_user:用于指定在远程主机上,以哪个用户的身份执行任务
- 其他…
- 2、Variable Section:定义运行 play 时,使用的变量
- 3、Task Section:定义要在远程主机上运行的任务列表,可以包含多个task
- name:任务的名字。用来描述任务是做什么的
- ‘module: options’:调用的 module 和传递给 module 的参数
- notify:用于指定通知哪些 handler
- 需要注意的是:默认情况下,仅在任务执行成功,并且远程主机发生变动的情况下,才会执行 notify
- 其他…
执行剧本
打印详细信息
二、YAML 语法
语法 | 描述 |
---|---|
缩进 | YAML使用固定的缩进风格表示层级结构,每个缩进由两个空格组成, 不能使用TAB |
冒号 | 以冒号结尾的除外,其他所有冒号后面所有必须有空格 |
短横线 | 表示列表项,使用一个短横杠加一个空格,多个项使用同样的缩进级别作为同一列表 |
三、playbook实战
3.1、环境准备
准备环境,后续试验就以其作为背景展开
主机 | IP | 身份 |
---|---|---|
m01 | 192.168.71.11 | 控制端 |
lb01 | 192.168.71.12 | 受控端 |
nfs | 192.168.71.13 | 受控端 |
web01 | 192.168.71.14 | 受控端 |
web02 | 192.168.71.15 | 受控端 |
db01 | 192.168.71.16 | 受控端 |
在控制端添加/etc/hosts
3.2.配置主机清单
3.3 创建并切入工作目录
3.4.编写base.yml
执行剧本
3.5 部署nfs剧本
执行剧本