目录
- 一.playbook介绍
- 二.playbook格式
- 1.书写格式
一.playbook介绍
playbook 是 ansible 用于配置,部署,和管理被控节点的剧本。通过 playbook 的详细描述,执行其中的一系列 tasks ,可以让远端主机达到预期的状态。playbook 就像 Ansible 控制器给被控节点列出的的一系列 to-do-list ,而被控节点必须要完成。也可以这么理解,playbook 字面意思,即剧本,现实中由演员按照剧本表演,在 Ansible 中,这次由计算机进行表演,由计算机安装,部署应用,提供对外服务,以及组织计算机处理各种各样的事情
二.playbook格式
1.书写格式
- 文件的第一行应该以 “—” (三个连字符)开始,表明 YMAL 文件的开始。
- 在同一行中,# 之后的内容表示注释,类似于 shell,python 和 ruby。
- YMAL 中的列表元素以 ”-” 开头然后紧跟着一个空格,后面为元素内容。
- 同一个列表中的元素应该保持相同的缩进。否则会被当做错误处理。
- play 中 hosts,variables,roles,tasks 等对象的表示方法都是键值中间以 “:”
分隔表示,“:” 后面还要增加一个空格
举例 安装挂载nfs服务
[root@tdm1 playbook]# cat nfs.yml
---
- hosts: web
remote_user: root
tasks:
- name: install nfs
yum: name=rpcbind,nfs-utils state=present
- name: nfs configure file
copy: src=./export.j2 dest=/etc/exports backup=yes
- name: mkdir share dir
file: path=/data state=directory owner=nfsnobody group=nfsnobody
- name: start rpcbind
service: name=rpcbind state=started enabled=yes
- name: start nfs
service: name=nfs state=started enabled=yes
- name: mount local
mount: src=47.93.98.117:/data path=/mnt fstype=nfs state=mounted
文件名称应该以.yml结尾
hosts :使用 hosts 指示使用哪个主机或主机组来运行下面的 tasks ,每个 playbook 都必须指定 hosts ,hosts 也可以使用通配符格式。主机或主机组在 inventory 清单中指定,可以使用系统默认的 /etc/ansible/hosts,也可以自己编辑,在运行的时候加上 -i 选项,指定清单的位置即可。在运行清单文件的时候,–list-hosts 选项会显示那些主机将会参与执行 task 的过程中。
remote_user:指定远端主机中的哪个用户来登录远端系统,在远端系统执行 task 的用户,可以任意指定,也可以使用 sudo,但是用户必须要有执行相应 task 的权限。
tasks:指定远端主机将要执行的一系列动作。tasks 的核心为 ansible 的模块,前面已经提到模块的用法。tasks 包含 name 和要执行的模块,name 是可选的,只是为了便于用户阅读,不过还是建议加上去,模块是必须的,同时也要给予模块相应的参数。
使用ansible-playbook运行playbook文件,得到以下输出信息,输出内容为json格式,由不同颜色组成
绿色代表执行成功,系统保持原样
黄色代表系统状态发生改变
红色代表失败,显示错误输出
执行有三个步骤:
1.收集facts
2. 执行tasks
3. 报告结果