Ansible - [06] Playbook

 

Playbook 概述

Ansible ad-hoc 可以通过命令行形式远程管理其他主机

  • 适合执行一些临时性简单任务

Ansible playbook 中文名称叫 剧本

  • 将经常需要执行的任务写入一个文件(剧本)
  • 剧本中可以包含多个任务
  • 剧本写好后,我们随时调用剧本,执行相关的任务名称
  • playbook 剧本要求按照YAML格式编写
  • 适合执行周期性经常执行的复杂任务

 

可以根据 ansible-doc查看对应模块的帮助手册,帮助信息中有playbook的写法案例、

 

 

YAML

  • 是一个可读性高、用来表达数据序列的格式语言
  • YAML:YAML Ain't Markup Language
  • YAML 以数据为中心,重点描述数据的关系和结构

 

YAML格式

  • "#" 代表注释,一般第一行为三个横杠
  • 键值对使用":"表示(冒号后面必须有空格),数组使用"-"表示
  • 缩进必须由两个或以上空格组成(缩进代表层级关系)
  • 相同层级的缩进必须对齐
  • 全文不可以使用tab键
  • 区分大小写、扩展名为yml或者yaml
  • 跨行数据需要使用>或者||会保留换行符)
--- #动漫
- "航海王":
    - "路飞"
    - "索隆"
- "火影忍者":
    - "鸣人"
    - "佐助"

跨行数据

--- #跨行文本(计算机理解为一行)
自我介绍: >
    字太白,号青莲居士,
    唐代诗人,祖籍陇西郡,
    今甘肃省平凉市
--- #跨行文本(计算机理解为多行)
自我介绍: |
    字太白,号青莲居士,
    唐代诗人,祖籍陇西郡,
    今甘肃省平凉市

综合示例

--- #一张发票
发票编号: 34843
日期: 2028-12-12
商品:
    - 商品编号: BL394D
      描述: 足球
      价格: 100
    - 商品编号: BL4438H
      描述: 棒球
      价格: 200
税费: 10.00
总价: 310.00
备注: >
    本次采购商品均
    属于球类运动商品
---   #错误日志
时间: 2028-10-01 15:01:42
用户: ed
错误信息:
    - 文件: nginx.conf
      行号: 23
      错误编码: "0x3D5FF1"
    - 文件: test.php
      行号: 12
      错误代码: "0xA4C51E"
警告信息: |
    你有两个错误信息需要查看,
    一条是配置文件错误,
    一条是脚本语法错误,
    具体内容参考错误信息.

 

 

 

Playbook 语法格式

  • playbook采用YAML格式编写
  • playbook文件中由一个或多个play组成
  • 每个play中可以包含
    • hosts(主机)、tasks(任务)
    • variables(变量)、roles(角色)、handlers等元素组成
  • 使用ansible-playbook命令运行playbook剧本:ansible-playbook xxx.yml [-f 5]
  • hosts由一个或多个组或主机组成,逗号分隔
  • tasks由一个或多个任务组成,多个任务按顺序执行
  • 可以使用 -f 选项自定义并发量

 

 

 

Playbook 案例

1、配置一个可以ping所有主机的playbook,并调用。

2、ping + 创建文件

3、删除文件

4、一个playbook可以包含多个play

5、编写playbook创建系统账户、账户属性、设置密码

花括号外面必须有双引号

6、编写playbook删除系统账户johnd

7、使用vdb创建卷组和逻辑卷(手动添加虚拟磁盘)

执行结果

8、安装软件、升级软件、安装组包

 

 

修改 vim 配置

使用2个空格自动替换tab键:tabstop=2、expandtab

开启自动缩进对齐,缩进宽度为2个空格:shiftwidth=2

 

 

 

(END)

 

posted @ 2024-01-11 18:26  HOUHUILIN  阅读(7)  评论(0编辑  收藏  举报