playbook
playbook介绍
ansible playbooks 是使用ansible简单的配置管理部署系统的基础,使用YAML语法格式的配置文件。每一个playbook中包含一系列的任务。使用ansible playbook可以更方便的管理、维护多态主机。
playbook语法
采用的语法格式是YAML
YAML
YAML是一个可读性高的用来资料序列的格式。YAML参考了多种编程语言,包括:XML,C,Python,Perl等。
YAML的特点
- 可读性好
- 和脚本语言的交互性好
- 使用实现语言的数据类型
- 易于实现
- 可基于流来处理
- 表达能力强,扩展性好
playbook基础组件
- Hosts:运行执行任务(task)的目标主机
- remote_user:在远程主机上执行任务的用户
- tasks:任务列表
- handlers:任务,与tasks不同的是只有在接受到通知时才会被触发
- templates:使用模板语言的文本文件,使用jinja2语法。
- variables:变量,变量替换{}
playbook的使用
执行一个创建用户的任务
[root@ansible playbook]# vim user.yml
[root@ansible playbook]# cat user.yml
--- //开始标记
- name: user //任务的名字
hosts: 192.168.35.136 //指定需要执行的主机和组
tasks: //任务
- name: create user for lry //任务名字
user: //指定模块
name: lry //用户名字
uid: 3535
state: present //用户状态
... //结束标记
语法验证
[root@ansible playbook]# ansible-playbook --syntax-check playbook/user.yml
空运行
使用-C选项对playbook执行空运行。这会使ansible报告在执行该playbook时将会发生什么更改,但不会对受管主机进行任何实际的更改
[root@ansible playbook]# ansible-playbook -C playbook/user.yml
运行playbook
[root@ansible ansible]# ansible-playbook playbook/user.yml
PLAY [user] ********************************************************************
TASK [Gathering Facts] *********************************************************
ok: [192.168.35.136]
TASK [create user for lry] *****************************************************
changed: [192.168.35.136]
PLAY RECAP *********************************************************************
192.168.35.136 : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
提高输出的详细程度
ansible-playbook命令提供的默认输出不提供详细的任务执行信息。ansible-playbook -v命令提供了额外的信息,总共有四个级别。
选项 | 描述 |
---|---|
-v | 显示任务结果 |
-vv | 任务结果和任务配置都会显示 |
-vvv | 包含关于与受管主机连接的信息 |
-vvvv | 增加了连接插件相关的额外详细程序选项 |