什么是PlayBook
PlayBook即”剧本”,”兵书”之意,PlayBook是由以下部分组成的
play: 定义的是主机的角色。(主角还是配角,找哪个明星)
task: 定义的是具体执行的任务。(角色的台词和动作)
playbook: 由一个或多个play(角色)组成,一个play(角色)可以包含多个task(台词,动作,大腕每集拍什么)。
简单理解为: 使用不同的模块完成一件事情
**在Ansible
中”剧本文件”是以yml结尾的文件。
在SaltStack
中”剧本文件”是以sls结尾的文件。
但是语法,使用的都是yaml
语法**
PlayBook与ad-hoc
1.PlayBook功能比ad-hoc更全,是对ad-hoc的一种编排.
2.PlayBook能很好的控制先后执行顺序, 以及依赖关系.
3.PlayBook语法展现更加的直观.
4.playbook可以持久使用,ad-hoc无法持久使用.
YAML语法
语法 描述
缩进 YAML使用固定的缩进风格表示层级结构,每个缩进由两个空格组成, 不能使用TAB
冒号 以冒号结尾的除外,其他所有冒号后面所有必须有空格
短横线 表示列表项,使用一个短横杠加一个空格, 多个项使用同样的缩进级别作为同一列表
备注: ansible 可以以空格或者 TAB为区分但是 SaltStack 严格以 空格区分
demo:
host:对哪些主机进行操作(演员)
remote_user:使用什么用户执行(通行证)
tasks:具体执行任务(台词和动作)
PlayBook部署httpd小练习
编写httpd剧本 |
#创建目录剧本存放目录
[root@m01 ~]# mkdir httpd
#编辑Inventory
[root@m01 ~]# vim /etc/ansible/hosts
[web_group]
web01 ansible_ssh_host=10.0.0.7
web02 ansible_ssh_host=10.0.0.8
需求一:编写安装httpd剧本
[root@m01 ~]# vim /root/httpd/httpd.yml --- - hosts: web_group tasks: - name: Install httpd Server yum: name: httpd state: present
#检查语法
[root@m01 ~]# ansible-playbook --syntax-check httpd.yml
playbook: httpd/httpd.yml
#测试安装
[root@m01 ~]# ansible-playbook -C httpd.yml
安装:
ansible-playbook httpd.yml
需求二:安装完httpd服务并启动加入开机自启
实战案例:
补充:
模块名称: unarchive 解压模块
unarchive:
src: 源压缩包
dest: 解压到目标主机的路径
remote_src: yes # 压缩包在客户端
creates: /root/1.txt # 如果目标文件存在则不在解压 如果是目录则写目录的路径
[root@ansible ansible]# cat tar.yml
- hosts: nfs
tasks:
- name: Unarchive
unarchive:
src: test.tar.gz
dest: /root/
creates: /root/1.txt
欢迎来撩 : 汇总all