您的位置 首页 linux 运维

ansible playbook 详解(使用不同的模块完成一件事情)(palybook汇总)

什么是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服务并启动加入开机自启

实战案例:

ansible playbook重构Rsync

补充: 

模块名称: 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

白眉大叔

关于白眉大叔linux云计算: 白眉大叔

热门文章