Ansible Playbook介绍 playbook的编写要求 playbook多任务案例

Playbook介绍

1.1什么是playbook

复制代码
playbook也是yml语法编写的文本文件,主要是由play和task组成
    play:主要是定义主机、主机组
            用hosts:定义
    task主要定义对主机或者主机组的任务,可以是一个,也可以是很多个
            用tasks:定义
总结:
    在编写playbook的时候,里面由一个或者是多个play组成;
    每一个paly可以包含一个或者多个task;

1.2 playbook和ad-hoc的区别

playbook是ad-hoc的一种编排方式

playbook是可以持续运行的,但ad-hoc只能临时运行一次

playbook适合复杂的任务,ad-hoc适合执行简单的任务

playbook能控制任务先后执行顺序

playbook的编写要求

复制代码
Playbook是yml语言编写,结构要清晰,可读性强,很多语言都是需要这种语法定义这个yml
    语言的要求非常严格,空格也是有明确要求的

========================================================================
要求
    1.文件中,禁止使用Tab进行缩进,如果使用编辑软件,需要修改配置将tab缩进,替换空格:
    必须是双数:2、4、6、8..
    2,文件编码格式,必须和操作系统匹配,默认utf-8
    如果使用vi或者vim,它自动和系统匹配 
缩进:
    yml和yaml使用固定缩进风格表示内容层级,每个缩进由双数的空格对应通常都是2个空格
    代表一层
冒号:
    除了以冒号结尾的,所有冒号后面,必须有一个空格,举例:(name: zhangsan)
减号:
    减号代表项,减号后面必须有空格,举例:-name

。使用vi或者vim编写playbook(最推荐的,因为他会自己匹配编码格式)

。如果要在windows系统内编辑playbook,保存时候一定要使用utf-8编码格式

复制代码
[root@ansible ~]# vi an-1.yml
[root@ansible ~]# cat an-1.yml
- hosts: webservers #指定针对那个主机或者那个主机组进行管理,下面就要指定具体的工作内容
  tasks: #任务列表
    - name: 创建一个文件
      file: name=/opt/9090.txt state=touch

[root@ansible ~]# ansible-playbook an-1.yml

PLAY [webservers] ***************************************************************************************************************************************

TASK [Gathering Facts] **********************************************************************************************************************************
ok: [192.168.92.20]

TASK [创建一个文件] *************************************************************************************************************************************
changed: [192.168.92.20]

PLAY RECAP **********************************************************************************************************************************************
192.168.92.20              : ok=2    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

[root@ansible ~]# ansible webservers -m shell -a 'ls /opt'
192.168.92.20 | CHANGED | rc=0 >>
9090.txt
a.tar.gz
a.txt
b.tar.gz
ceshi.txt
cp.txt
cp.txt.2585.2026-03-26@20:21:13~
index.html
replace.txt
xxx.txt
[root@ansible ~]#

playbook多任务案例

复制代码
[root@ansible ~]# vi an-2.yml 
[root@ansible ~]# cat an-2.yml
- hosts: webservers
  tasks:
    - name: 创建129.txt
      file:
        path: /opt/129.txt
        state: touch
    - name: 创建150.txt
      file:
        path: /opt/150.txt
        state: touch
[root@ansible ~]# ansible-playbook an-2.yml

PLAY [webservers] ***************************************************************************************************************************************

TASK [Gathering Facts] **********************************************************************************************************************************
ok: [192.168.92.20]

TASK [创建129.txt] **************************************************************************************************************************************
changed: [192.168.92.20]

TASK [创建150.txt] **************************************************************************************************************************************
changed: [192.168.92.20]

PLAY RECAP **********************************************************************************************************************************************
192.168.92.20              : ok=3    changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

[root@ansible ~]# ansible webservers -m shell -a 'ls /opt'
192.168.92.20 | CHANGED | rc=0 >>
129.txt
150.txt
9090.txt
a.tar.gz
a.txt
b.tar.gz
ceshi.txt
cp.txt
cp.txt.2585.2026-03-26@20:21:13~
index.html
replace.txt
xxx.txt
[root@ansible ~]#
相关推荐
专注API从业者3 小时前
告别人工盯品!借助 Open Claw 搭建电商商品自动化监控与数据分析系统(完整可运行源码)
大数据·运维·数据库·数据分析·自动化
爱喝水的鱼丶5 小时前
SAP-ABAP:ABAP 用户出口参数传递与上下文获取:SAP 标准数据读取与交互逻辑实现
运维·性能优化·交互·sap·abap·经验交流·出口
IT大白鼠5 小时前
PentestGPT作为AI运维编排工作流自动化底座的技术架构与应用价值评估
运维·人工智能·自动化·pentestgpt
M78佐菲5 小时前
c语言学习笔记:排序与查找方法整理
linux·c语言·笔记·学习·算法
ltl6 小时前
QUIC 协议拆解(上):为什么 TCP 改不动了
linux
j7~6 小时前
【Git】《Git 系列指南(二):Git基本操作与 reset 三种模式》
运维·git·git安装·git基本操作·git配置·创建git仓库·git reset三种模式
zzzll11116 小时前
n8n 工作流自动化平台入门指南
运维·自动化
Hrain-AI6 小时前
Anthropic oncall-kit 开源拆解:运维 Agent 落地范式的四基石与权限边界
运维·人工智能·开源
HXDGCL7 小时前
从“转盘困局”到“直线破局”:华创力科技PTS精密分度输送系统如何重塑自动化产线
运维·科技·自动化
戴西软件7 小时前
国内有哪些智能化RPA工具?——从“录数据”到“做判断”,国产数字员工正在重新定义自动化
运维·自动化·rpa