Ansible_palybook介绍及应用

Ansible Playbook是一个配置管理多主机部署系统的剧本,采用YAML格式编写,包括hosts、tasks、handlers和templates等主要部分。Tasks是按顺序执行的任务,Handlers仅在被notify时执行,Templates使用Jinja2引擎进行变量替换。Playbook支持远程用户和特权升级设定,可实现复杂部署场景。
摘要由CSDN通过智能技术生成

Ansible_palybook介绍及应用

1 playbook(剧本)介绍

  • playbook是一个不同于使用Ansible命令执行方式的模式,简单来说,playbook是一个非常简单的配置管理多主机部署系统,不同于任何已经存在的模式,可以作为一个适合部署复杂应用程序基础。Playbook可以制定配置,可以按照指定的操作步骤有序执行,支持同步和异步方式。值得注意的是-playbook是通过YAML格式来进行描述定义的
  • play是针对清单中选定的主机运行的一组有序任务。playbook是一个文本文件,其中包含由一个或多个按特定顺序运行的play组成的列表

##1.2核心元素

Tasks:      //任务,有模块定义的操作列表
Variables:      // 变量
Templates:      //模块,即使用模块语法的文件
Handlers:      //处理器,当某个条件满足时,出发执行的操作
Roles:      //角色

1.3 主要组成部分介绍

1.3.1 hosts和users

在playnook中的每一个play都可以选择在那些服务器和以什么用户完成,hosts一行可以是一个主机组,主机,多个主机,中间以冒号分隔开,可以使用通配模式

1.3.2 Tasks(任务)

  • Play的主体部分是tasks列表中的个任务按次序逐个在hosts中指定的主机上执行,即在所有主机上完成第一个任务后在开始执行第二个任务。在运行playbook时(从上到下执行),如果一个hoist执行tasks失败,整个tasks都会回滚,修正playbook中的错误,然后重新执行
  • 每一个task必须有一个名称name,这样在运行playbook时,从输出的任务执行信息中可以辨认出属于哪一个task
  • ansible的自带模块中,command模块和shell模块无需使用key=value格式

1.3.3 Handlers(触发器)

  • handlers也是一些task的列表,和一般的task并没有什么区别
  • 是由通知者进行的notify,如果没有被notify,则Handlers不会执行,反则就会执行
  • 不管多少个通知者进行notify,等到play中的所有task执行完成后,handlers也只会被执行一次

1.3.4 Templates(模板)

  • Jinja是基于Python的模块引擎。template类是jinja的另一个重要组件,可以看作一个编译过的模块文件,用来生产目标文件,传递Python的变量给模块去替换模块中的标记

1.4 Playbook的语法结构

Playbook是以YAML格式编写的文本文件,通常使用扩展名yml保存。Playbook使用空格字符缩进来表示其数据结构。YAML对用于缩进的空格数量没有严格的要求,但有两个基本的规则

  • 处于层次结构中同一级别的数据元素(例如同一列表中的项目)必须具有相同的缩进量
  • 如果项目属于其他项目的子项,其缩进量必须大于父项

1.5 YAML编写技巧

  • 缩进
    YAML使用一个固定的缩进风格表示数据层关系,建议使用两个空格

  • 冒号
    冒号两边表示key和value

  • 短横杠
    想要表示列表项,使用一个短横杠加一个空格。多个项使用同样的缩进级别作为同一列表的一部分

---
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值