Ad-hoc模式的缺点
每一条ansible命令只能对被管理主机执行一个ansible模块
如果一个运维任务包含了大量相关的运维操作,比如对一个服务的运维,涉及了服务的安装、配置、日志文件收集等等操作,通过敲ansible命令的方式实现,就太繁琐了

Ansible Playbook模式
将相关运维操作集合在一个playbook文件中,通过执行playbook文件,可以快速完成运维操作
ansible playbook文件就相当于一个脚本,将运维相关的各类操作组合在一起;playbook还可以通过循环、条件判断等功能实现更为灵活的运维逻辑

一、Playbook语法
1、Playbook文件以.yml为后缀名
YAML语法

文件开头第一行,必须是- - -,即三条横线
YAML语法中,“-”用于定义一个列表,列表中的元素是并列关系

2、Playbook由一到多个Play组成;每一Play定义了相关的一组运维任务
1)、Play的组成

由各类键值对(key-value pair)组成
对哪些被管理主机进行操作——hosts键值对
对被管理主机执行的任务列表——tasks键值对

2)、hosts键值对的定义
hosts:主机组名/主机名/主机IP地址

3)、tasks键值对的定义

tasks:
          任务列表

4)、任务的定义
指定该任务所要执行的模块及其参数
方式1:

- name: 任务的描述性信息(可选,但推荐使用)
  模块名:  参数1=值1   参数2=值2  … 参数n=值n

方式2:

- name: 任务的描述性信息
  模块名: 
      参数1: 值1
      参数2: 值2  
      … 
      参数n: 值n

二、Playbook的执行
ansible-playbook playbook文件路径 [-i 主机清单文件]

默认按照playbook中的play的顺序,以及play中任务的顺序,自上而下顺序执行
默认情况下,只有当某一任务在所有被管理主机上都执行完毕后,才会执行下一任务
默认情况下,当某一任务在某台被管理主机上执行失败时,会造成该主机后续任务执行的中断
默认情况下,ansible会同时在5台被管理主机上执行同一任务,可以设置任务并行执行的主机数量,以加快运维进度

显示Playbook任务执行的细节
ansible-playbook -v

Playbook中任务执行情况返回值

ok
任务执行成功,但任务模块的执行没有对主机产生修改
changed
任务执行成功,任务模块的执行对主机产生了修改
failed
任务执行失败
skipped
任务被跳过

Playbook语法检查
ansible-playbook --syntax-check

Playbook测试运行
ansible-playbook -C

Playbook先测试再运行

ansible-playbook  playbook文件路径  -C
ansible-playbook  playbook文件路径

Playbook的幂等性
如果对被管理主机重复执行playbook,并不会对被管理主机造成负面影响,则称该playbook具有幂等性

原文地址:http://www.cnblogs.com/tjane/p/16905704.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性