Playbook简介
- 通过 playbook,可以编排步骤进行多机器的部署,比如在 webservers 组的所有机器上运行一定的步骤, 然后在
database server 组运行一些步骤,最后回到 webservers 组,再运行一些步骤,诸如此类.
通俗来说就是将原来部署时需要在命令行里输入的命令,有序地进行编排,从而达到部署相同服务时,运行playbook就可以实现,而避免每次人工配置的麻烦,是一劳永逸的方法。 - Playbooks 的格式是YAML,常用到的YML的语法
- 文件的第一行应该以"—"三个连字符开始,表明
YMAL
文件的开始 - 在同一行中,#之后的内容表示注释,类似于shell、python。
- YMAL中的列表元素以"-"开头然后紧跟着一个空格,同一个列表中的所有元素应该保持相同的缩进。
playbook部署http实例
接下来我们通过playbook将前一篇中提到的ansible部署http的过程用playbook写出来。
可以使用 ansible-doc 模块
进行查询
[devops@server10 ansible]$ vim hosts
[test]
172.25.65.11
172.25.65.12
[devops@server10 ansible]$ vim apache.yml
---
- hosts: test ##主机
tasks: ##任务
- name: install apache ##yum安装httpd
yum:
name: httpd
state: present
- name: start apache ## 开启apache
service:
name: httpd
state: started
enabled: yes
- name: create index.html ## 复制index.html到部署主机
copy:
src: index.html
dest: /var/www/html/index.html
- name: start firewalld ##开启火墙
service:
name: firewalld
state: started
- name: config firewalld ## 火墙允许httpd访问
firewalld:
service: http
state: enabled
permanent: yes
immediate: yes
- 语法检测
[devops@server10 ansible]$ ansible-playbook apache.yml --syntax-check
playbook: apache.yml
- 在本机要有
index.html
文件
[devops@server10 ansible]$ cat index.html
hello world
- 推送
[devops@server10 ansible]$ ansible-playbook apache.yml
测试:
[root@server11 ~]# cd /var/www/html/
[root@server11 html]# ls
index.html
[root@server11 html]# cat index.html
hello world
[root@server12 ~]# cd /var/www/html
[root@server12 html]# ls
index.html
[root@server12 html]# cat index.html
hello world