playbook相当于剧本,ansible根据playbook中定义的任务去执行对应的操作。使用yaml格式去编写。仍然使用的是ansible中对应的模块。
playbook中可以包含多个play(剧本)。
play包含了:name(描述),hosts(ansible对应的主机集合或者主机名),tasks(执行的任务)。
task包含了:name(描述),ansible模块。
ansible模块中定义了相关的动作,模块的使用和ansible的使用完全一样,只是变成了yaml格式。
例:使用playbook完成lamp的部署
0、准备工作:
有一台ansible主机安装并且配置完毕,实现免密执行ansible
1、修改vim配置,适用于yaml
vim ~/.vimrc
autocmd FileType yaml setlocal sw=2 st=2 et ai
2、编写playbook文件
vim lamp.yml
---
#在web服务器上配置httpd,对应一个play
- name: configure web service
hosts: web #ansible主机集合文件hosts中对应的组
#两个任务,yum安装httpd、php、php-mysql,启服务httpd
tasks:
# 任务一,安装相关软件包
- name: install web pkgs #描述
yum: #使用ansible的yum模块
name: httpd,php,php-mysql
state: present #表示有相关软件包就安装
# 任务二,启动相关服务
- name: config web service
service: #使用ansible的service模块
name: httpd
state: started
enabled: true
#在数据库服务器上配置mariadb,对应一个play
- name: configure db service
hosts: db #ansible主机集合文件hosts中对应的组
#两个任务,yum安装mariadb-server,启服务mariadb
tasks:
# 任务一,安装相关软件包
- name: install db pkgs #描述
yum:
name: mariadb-server
state: latest
# 任务二,启动相关服务
- name: config db serivce
service:
name: mariadb
state: started
enabled: yes
ansible-playbook --syntax lamp.yml #检查配置文件语法是否错误
ansible-playbook lamp.yml #执行playbook
写总结的第七十六天!!!