playbook的功能:
1.playbook是由一个或多个play组成的列表。
2.playbook文件是用yaml来写的。
3.playbook是一种简单的配置管理系统与多机器部署系统的基础,非常适合复杂应用的部署。
4.playbook可以用于声明配置,更强大的地方在于,在playbook中可以编排有序执行过程,甚至做到在多组机器间来回有序的执行特别指定的步骤,并且可以同步或异步的发起任务。
yaml:
简介:
yaml全程是yet another markup language,是一种表达资料序列的格式,类似xml。
特点:
可读性好,和脚本语言交互性好,易于实现,适用程序执行流梳理方式,可扩展性强。
语法简介:
在文件中用---开始(可省略),在文件中用...结束,次行一般书写文件内容,缩进严格并且大小写敏感,key/value可以多行书写也可以一行书写。value可以是字符串也可以是list,一个play需要包括name和tasks,name是描述,tasks是动作,一个name只能包含一个task,拓展名为yml或者yaml。
yaml列表表达方式:
[Linux,C++,Java,Python]
- Linux
- C++
- Java
- Python
yaml的字典表达方式:
字典用于存放键值
其表达方式有两种
name:Test
age:12
jobs:linux
{name: “Test”, age: “12”, jobs: “linux”}
注意:列表元素前必须加 ‘-’,但是字典前面不加
playbook执行命令:
执行参数:
-check/-C 预检测
-syntax-check 语法检测
-list-hosts 列出hosts
-list-tasks 列出tasks
-list-tags 列出tag
-limit 指定执行主机
-v/-vv/-vvv 显示实现过程,v越多,显示越详细
1.编写yml文件:
2.进行预执行检测,即没有执行只是进行检测:
进行语法检测,注意语法检测是不执行的,只是检测语法:
列出受控主机:
列出yml文件中的任务:
指定主机执行检测行为:
执行该playbook文件:
加上-v参数,显示部分执行过程,此时就可以看到该文件的执行结果:
修改test.yml文件,如下直接将模块当作一个列表,模块的参数使用键值表达,这样的表达方式是成立的:
显示执行过程:
playbook的核心组件:
name 可选的,建议用于说明
hosts 受控主机列表
tasks 任务,用于选择执行部分代码
vim设定技巧:
可以在~/.vimrc文件中设定:autocmd FileType yaml setlocal ts=2 ai et sw=2,表示只对playbook文件生效。
setlocal:设定当前文件
ai:自动退格对其
ts:设置tab键长度
sw:缩进长度为
et:把tab键变成空格
1.playbook具有严格的缩进和语法限制,为了方便缩进,可以设置如下,tab键长度为2:
2.只对playbook文件生效的vim设定:
autocmd FileType yaml setlocal ts=2 ai et sw=2
注意:
设置之后使用cat命令查看某个vim文件,是不会有行号的,但文件里里会有行号显示
vim的set设定表示对所有打开的vim文件都有效,对新打开的vim也生效
vim的setlocal设定表示只对当前的vim文件有效,若再打开新的vim,则不生效