一、ansible Playbook 简单介绍。
ansible可以使用普通命令的方式管理主机,如果服务器数量多的话,配置信息比较多,一个一个的敲出来就有点繁琐了,还容易出错,这时可以使用ansible playbook 编写剧本,从而实现更加简便的方式实现任务处理的自动化与流程化。
playbook其实就像shell脚本一样,脚本是由多个命令组成,而playbook由多个任务,多个模块组成一个完整的流程控制集合。
二、基本语法书写。
Playbook主要有以下四部分构成:
- target:定义将要执行playbook的远程主机组
- variable:定义playbook运行时需要使用的变量
- task :定义将要在远程主机上执行的任务列表
- handler:定义task执行完成以后需要调用的任务
下面是一个很基本的剧本(Playbook又称为剧本)
---
- hosts: web
remote_user: root
tasks:
- name: install httpd
yum: name=httpd state=installed
- name: add index file
copy: src=/root/index.html dest=/var/www/html/index.html
- name: start service
service: name=httpd state=started enabled=yes
解析如下:
--- #三个杠表示剧本文件的开头
- hosts: web #执行任务的主机列表,这里是给web主机组
remote_user: root #远程执行用户
tasks: #任务的开始
- name: install httpd #每一个tasks必须有一个名称name,可以理解为一个标记,执行时可以看到
yum: name=httpd state=installed #使用yum模块执行安装http的功能
- name: add index file
copy: src=/root/index.html dest=/var/www/html/index.html #使用copy模块复制主页文件
- name: start service
service: name=httpd state=started enabled=yes #使用service模块开启服务
其中要注意:
同级的缩进要对齐,hosts,remote_user,tasks 就是同级
每一个模块都使用key=value格式如remote_user: root 冒号后面有空格
remote_user: root 对应 key: value 如果不明白key=value 就记住模块后面等于值,写的时候冒号加空格