Ansible(4)—— Playbook

news2025/4/8 21:19:12

目录

一、Ansible Playbook :

1、Play :

2、Playbook:

二、Ansible Playbook 格式:

1、空格:

2、破折号( - ):

3、Play 格式:

三、查找用于任务的模块:

1、模块:

2、查找模块:

(1)Ansible Content Collection :

(2)ansible.builtin :

四、运行 Playbook :

1、语法检验:

2、运行 Playbook :

3、提高输出的详细程度:

五、编写多个 Play( Multiple Play ) :


一、Ansible Playbook :

1、Play :

        任务( task )指应用模块( module )来执行特定工作单元,而 play 包含一系列 tasks ,在清单中选择一台或多台主机并按顺序运行。play 将一系列冗⻓而复杂的手动管理任务转变为可轻松重复的例程,且具有可预测的结果。

2、Playbook:

        playbook 中则包含由一个或多个按特定顺序运行的 play 组成的列表。Ansible 使用 playbook 可以轻松且可重复地对一组目标主机运行多项复杂任务,在 playbook 中,可将 play 内的任务序列保存为人类可读并可立即运行的形式。根据任务的编写方式,任务本身记录了部署应用或基础架构所需的步骤。

二、Ansible Playbook 格式:

        playbook 是 YAML 格式的文本文件,扩展名通常为 yml ,playbook 使用带空格字符的缩进来表示数据的结构,可以添加空行以增加可读性。

1、空格:

        YAML 文件对缩进使用了多少空格没有严格的要求,但是有两个基本规则:

(1)层次结构中相同级别的数据元素必须具有相同的缩进

(2)子项必须父项缩进更多

注:编写 playbook 文件时,只能使用空格缩进,不能使用 Tab 键。但使用 vi 编辑器,可以通过编辑 $HOME/.vimrc 将 Tab 转化为 2 个空格。

2、破折号( - ):

        playbook 以三个破折号( --- )作为文档开始的标记。

注:以三个点( )作为文档结束的标记,不过此标记在实践中经常被省略。

        在开始标记与结束标记之间,playbook 由一组 plays 构成。YAML 列表中的 item 一个破折号开始,后跟空格

3、Play 格式:

        play 本身是 key-value 对的集合,同一 play 中的 keys 应该有相同缩进。play 的第一行以破折号和空格开始

        1)第一个 key:name 描述 play 的目的。name key 是可选项,但推荐使用,有助于记录 playbook ;

        2)第二个 key :hosts 属性指定运行 play 任务的主机

        3)最后一个 key :tasks 属性表示这个 play 运行的任务列表。tasks 属性需列出要在主机上运行的任务,列表中的每个任务本身也都是键值对的集合。

三、查找用于任务的模块:

1、模块:

        模块play 用于完成任务的工具,现已有数百个模块来执行不同的操作。模块使用完全限定集合名称( FQCN )命名,因此两个 Ansible Content Collection 中的不同模块也可以使用相同的名称,不会导致冲突。例如,ansible.builtin Ansible Content Collection 提供的 copy 模块将以 ansible.builtin.copy 为其 FQCN 。

2、查找模块:

(1)Ansible Content Collection :

        Ansible Core 2.11 及更高版本会将任务所用模块打包到名为 Ansible Content Collection 的集合中。每个 Ansible Content Collection 都包含模块和文档。

注:RHAAP 2.2 中的 ansible-navigator 还包含其他很多 Ansible Content Collection 。可通过运行 ansible-navigator collections 命令来浏览这些 collections 。在交互式 UI 中,可以键入冒号 ( : ) 后跟集合行号来获取更多的相关信息,包括模块列表及其提供的其他 Ansible 内容。也可对模块的行号执行相同操作,获取该模块的相关文档。按 Esc 键可以返回上一列表。

(2)ansible.builtin :

        ansible-core 软件包提供名为 ansible.builtin 的单个 Ansible内容集合,且这些模块随时可用。如需 ansible.builtin 集合中的模块列表,可点此访问:https://docs.ansible.com/ansible/latest/collections/ansible/builtin/

   

     

四、运行 Playbook :

1、语法检验:

        在执行 playbook 前,可以先对其进行验证,确保语法正确无误。ansible-navigator run --syntax-check 命令,可用于验证 playbook 文件语法

注:(1)若语法验证失败,将报告语法错误,此时输出中包含语法问题在 playbook 中的大致位置。

       (2)若直接使用 –C( --check )选项,Ansible 将报告在执行该 playbook 时会发生什么更改,但不会对受管主机进行任何实际更改。

2、运行 Playbook :

        在控制节点上使用 ansible-navigator run 命令执行 playbook ,运行 playbook 时,将显示所执行的 play 、任务以及执行的的结果。使用 ansible-navigator run -m stdout 命令可将 playbook 运行的输出结果打印到标准输出

注:(1)未提供 -m stdout 选项,则 ansible-navigator 将以交互模式运行。

       (2)前面讲述 playbook 的格式时说道:name 属性是可选项,但建议使用。此处可以看出 playbook 在执行时会显示 name 属性的值,因此对于具有多个 play 和 tasks 的 playbook ,使用 name 属性会给监控 playbook 的执行进程提供非常大的帮助,所用建议使用。

       一般来说,Ansible playbook 中的任务是幂等的 idempotent ),可以安全地多次运行 playbook 。如果目标托管主机已经处于正确的状态,则不应进行任何更改。

        如,将上图中执行的 playbook 再次执行,此时所有的任务状态为 ok,且没有发生任何 change ,即不做任何更改。

注:社区 Ansible 提供名为 ansible-playbook 的早期工具,该工具的很多选项与 ansible-navigator run -m stdout 相同,且以控制节点为执行环境。但该工具不能使用自动化执行环境,红帽仅支持在 RHEL9 中使用该工具用于有限用例。

3、提高输出的详细程度:

        ansible-navigator run 命令的默认输出并没有提供详细的信息,可使用 -v 选项增加输出内容,输出的详细程度如下表:

        选项     描述
           -v  显示任务结果
          -vv  显示任务结果与任务配置
         -vvv  显示关于受管主机连接情况的更多信息
        -vvvv  在上述基础上,增加了与连接插件相关的额外详细程度选项,包括受管主机上用于执行脚本的用户,以及所执行的脚本。

五、编写多个 Play( Multiple Play ) :

        若一个 playbook 中含有多个 play ,则每个 play 针对一组主机进行操作,有助于实现对不同主机执行不同任务的复制部署。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2329555.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

自学-C语言-基础-数组、函数、指针、结构体和共同体、文件

这里写自定义目录标题 代码环境:?问题思考:一、数组二、函数三、指针四、结构体和共同体五、文件问题答案: 代码环境: Dev C ?问题思考: 把上门的字母与下面相同的字母相连,线不能…

蓝桥云客--团队赛

2.团队赛【算法赛】 - 蓝桥云课 问题描述 蓝桥杯最近推出了一项团队赛模式,要求三人组队参赛,并规定其中一人必须担任队长。队长的资格很简单:其程序设计能力值必须严格大于其他两名队友程序设计能力值的总和。 小蓝、小桥和小杯正在考虑报名…

C-S模式之实现一对一聊天

天天开心!!! 文章目录 一、如何实现一对一聊天?1. 服务器设计2. 客户端设计3. 服务端代码实现4. 客户端代码实现5. 实现说明6.实验结果 二、改进常见的服务器高并发方案1. 多线程/多进程模型2. I/O多路复用3. 异步I/O(…

[Deep-ML]Transpose of a Matrix(矩阵的转置)

Transpose of a Matrix(矩阵的转置) 题目链接: Transpose of a Matrix(矩阵的转置)https://www.deep-ml.com/problems/2 题目描述: 难度: easy(简单)。 分类&#…

智慧节能双突破 强力巨彩谷亚VK系列刷新LED屏使用体验

当前全球节能减排趋势明显,LED节能屏作为显示技术的佼佼者,正逐渐成为市场的新宠。强力巨彩谷亚万境VK系列节能智慧屏凭借三重技术保障、四大智能设计以及大师臻彩画质,在实现节能效果的同时,更在智慧显示领域树立新的标杆。   …

html 给文本两端加虚线自适应

效果图&#xff1a; <div class"separator">文本 </div>.separator {width: 40%;border-style: dashed;display: flex;align-items: center;color: #e2e2e2;font-size: 14px;line-height: 20px;border-color: #e2e2e2;border-width: 0; }.separator::bef…

leetcode4.寻找两个正序数组中的中位数

思路源于 LeetCode004-两个有序数组的中位数-最优算法代码讲解 基本思路是将两个数组看成一个数组&#xff0c;然后划分为两个部分&#xff0c;若为奇数左边部分个数多1&#xff0c;若为偶数左边部分等于右边部分个数。i表示数组1划分位置&#xff08;i为4是索引4也表示i的左半…

0101安装matplotlib_numpy_pandas-报错-python

文章目录 1 前言2 报错报错1&#xff1a;ModuleNotFoundError: No module named distutils报错2&#xff1a;ERROR:root:code for hash blake2b was not found.报错3&#xff1a;**ModuleNotFoundError: No module named _tkinter**报错4&#xff1a;UserWarning: Glyph 39044 …

OSCP - Proving Grounds- SoSimple

主要知识点 wordpress 插件RCE漏洞sudo -l shell劫持 具体步骤 依旧是nmap 起手&#xff0c;只发现了22和80端口&#xff0c;但80端口只能看到一张图 Nmap scan report for 192.168.214.78 Host is up (0.46s latency). Not shown: 65533 closed tcp ports (reset) PORT …

C语言求3到100之间的素数

一、代码展示 二、运行结果 三、感悟思考 注意: 这个题思路他是一个试除法的一个思路 先进入一个for循环 遍历3到100之间的数字 第二个for循环则是 判断他不是素数 那么就直接退出 这里用break 是素数就打印出来 在第一个for循环内 第二个for循环外

【2025】物联网发展趋势介绍

目录 物联网四层架构感知识别层网络构建层管理服务层——**边缘存储**边缘计算关键技术&#xff1a;综合应用层——信息应用 物联网四层架构 综合应用层&#xff1a;信息应用 利用获取的信息和知识&#xff0c;支持各类应用系统的运转 管理服务层&#xff1a;信息处理 对数据进…

如何查看 MySQL 的磁盘空间使用情况:从表级到数据库级的分析

在日常数据库管理中&#xff0c;了解每张表和每个数据库占用了多少磁盘空间是非常关键的。这不仅有助于我们监控数据增长&#xff0c;还能为性能优化提供依据。 Google Gemini中国版调用Google Gemini API&#xff0c;中国大陆优化&#xff0c;完全免费&#xff01;https://ge…

汇编学习之《移位指令》

这章节学习前需要回顾之前的标志寄存器的内容&#xff1a; 汇编学习之《标志寄存器》 算数移位指令 SAL (Shift Arithmetic Left)算数移位指令 : 左移一次&#xff0c;最低位用0补位&#xff0c;最高位放入EFL标志寄存器的CF位&#xff08;进位标志&#xff09; OllyDbg查看…

Nature Communications上交、西湖大学、复旦大学研发面向机器人多模式运动的去电子化刚弹耦合高频自振荡驱动单元

近年来&#xff0c;轻型仿生机器人因其卓越的运动灵活性与环境适应性受到国际机器人领域的广泛关注。然而&#xff0c;现有气动驱动器普遍受限于低模量粘弹性材料的回弹滞后效应与能量耗散特性&#xff0c;加之其"非刚即柔"的二元结构设计范式&#xff0c;难以同时满…

对备忘录模式的理解

对备忘录模式的理解 一、场景1、题目【[来源](https://kamacoder.com/problempage.php?pid1095)】1.1 题目描述1.2 输入描述1.3 输出描述1.4 输入示例1.5 输出示例 2、理解需求 二、不采用备忘录设计模式1、代码2、问题3、错误的备忘录模式 三、采用备忘录设计模式1、代码1.1 …

【数据结构】图的基本概念

图的定义 通俗来说一堆顶点被一堆线连在一起&#xff0c;这一坨顶点与线的集合 目录 图的定义 术语 有向图与无向图 简单图与多重图 度、入度与出度 路径与回路 路径长度与距离 子图 连通、连通图与连通分量 强连通、强连通图与强连通分量 完全图 生成树与生成森林 权…

激光加工中平面倾斜度的矫正

在激光加工中&#xff0c;加工平面的倾斜度矫正至关重要&#xff0c;直接影响加工精度和材料处理效果。以下是系统的矫正方法和步骤&#xff1a; 5. 验证与迭代 二次测量&#xff1a;加工后重新检测平面度&#xff0c;确认残余误差。 反馈优化&#xff1a;根据误差分布修正补偿…

rdiff-backup备份

目录 1. 服务器备份知识点 1.1 备份策略 1.2 备份步骤和宝塔面板简介 1.3 CentOS7重要目录 2. 备份工具 2.1 tar -g 备份演示 2. rsync 备份演示 3. rdiff-backup 备份演示 4. 差异和优缺点 3. rdiff-backup安装和使用 3.1 备份命令rdiff-backup 3.2 恢复命令--…

PE结构(十五)系统调用与函数地址动态寻找

双机调试 当需要分析一个程序时&#xff0c;这个程序一定是可以调试的&#xff0c;操作系统也不例外。在调试过程中下断点是很重要的 当我们对一个应用程序下断点时&#xff0c;应用程序是挂起的。但当我们对操作系统的内核程序下断点时&#xff0c;被挂起的不是内核程序而是…

webrtc 本地运行的详细操作步骤 1

前言 选修课的一个课程设计&#xff0c;需要我们本地运行这个开源项目&#xff0c;给我的压力非常大&#xff0c;因为确实不是很熟练这种操作。但是还是得做。谨以此文&#xff0c;纪念这个过程。 之前自己在 github 上面看到有代码仓库&#xff0c;但是比较复杂&#xff0c;在…