Ansible学习笔记12
playbook:
playbook(剧本):是ansible用于配置、部署和管理被控节点的剧本,用于Ansible操作的编排。
使用的是yaml格式,(saltstack、elk、docker、docker-compose、k8s都会使用到yaml格式。)
这种格式对我们运维的人员还是非常重要的。
YAML格式:
以.yaml结尾或者yml结尾。
1)文件的第一行以---开始,表明YAML文件的开始;(可选)
2)以#开头表示注释;<!-- -->
3)列表中的所有成员都开始于相同的缩进格式,并以使用一个"-"作为开头。
4)一个字典是由简单的 键: 值 的形式组成(冒号后面必须有一个空格。)
注意的是:写这种文件不要使用tab键,都必须使用空格。我们正常使用两个空格。
看一个示例:

字典和列表的格式:


示例:
[root@localhost playbook]# cat example.yaml
---
- hosts: group1remote_user: roottasks:- name: ensure apache is at the latest versionyum: name=httpd,httpd-devel state=latest- name: write the apache config filecopy: src=/etc/httpd/conf/httpd.conf dest=/etc/httpd/conf/httpd.confnotify:- restart apache- name: ensure apache is running (and enable it at boot)service: name=httpd state=started enabled=yeshandlers:- name: restart apacheservice: name=httpd state=restarted
说明:
1)tasks任务。
2)安装httpd;
3)copy模块,同步配置文件;
4)notify是配置文件修改之后,调用restart apache的handlers:这种格式要留心下。
[root@localhost ~]# ansible-playbook /etc/ansible/playbook/example.yamlPLAY [group1] *************************************************************************************TASK [Gathering Facts] ****************************************************************************
ok: [192.168.17.106]
ok: [192.168.17.105]TASK [ensure apache is at the latest version] *****************************************************
changed: [192.168.17.105]
changed: [192.168.17.106]TASK [write the apache config file] ***************************************************************
changed: [192.168.17.105]
changed: [192.168.17.106]TASK [ensure apache is running (and enable it at boot)] *******************************************
changed: [192.168.17.105]
changed: [192.168.17.106]RUNNING HANDLER [restart apache] ******************************************************************
changed: [192.168.17.106]
changed: [192.168.17.105]PLAY RECAP ****************************************************************************************
192.168.17.105 : ok=5 changed=4 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
192.168.17.106 : ok=5 changed=4 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0

说明:绿色表示的没有更新。黄色的表示有更新。红色表示的failed。
步骤和错误都是可视化。这个是playbook的一个优点。
playbook有个专业术语:幂等性。
幂等性的概念:一次或多次请求某一个资源本身应该具有同样的结果。(网络超时等问题除外。)

1)出错不用推导重做。
2)剧本执行一百次,结果只有一个。
3)避免了万一出错,需要重来的问题。我们可以先写个剧本,万一某一步出错,我们不需要推导重来。
相关文章:
Ansible学习笔记12
playbook: playbook(剧本):是ansible用于配置、部署和管理被控节点的剧本,用于Ansible操作的编排。 使用的是yaml格式,(saltstack、elk、docker、docker-compose、k8s都会使用到yaml格式。&am…...
sqlmap中文文档
这是 sqlmap -hh的翻译,后续可能会对参数进行详细的示例 sqlmap 普通选项 -h, --help # 显示基本帮助信息并退出 -hh # 详细帮助信息 --versino # 版本 -v # 日志详细级别 0-60:只显示python错误以及严重的信息。1:同时显示基本信…...
【C++模拟实现】vector的模拟实现
【C模拟实现】vector的模拟实现 目录 【C模拟实现】vector的模拟实现vector模拟实现的标准代码vector模拟实现中的要点insert和erase会涉及到迭代器失效的问题vector深度剖析关于模版template< class InputIterator >使用memcpy拷贝问题 作者:爱写代码的刚子 …...
go学习part21(3)redis连接池
连接池 1.介绍 每次使用数据就就建立链接再关闭可以,但是如果有大量客户端频繁请求连接,大量创建连接和关闭会非常耗费资源。 所以就建立一个连接池,里面存放几个不关闭的连接,谁要用就分配给谁。 说明:通过Golang 对 Redis操…...
乐理-笔记
乐理笔记整理 1、前言2、认识钢琴键盘及音名3、升降号、还原号4、如何区分同一音名的不同键?5、各类音符时值的关系6、歌曲拍号7、拍号的强弱规律8、歌曲速度(BPM)9、附点音符10、三连音12、唱名与简谱数字13、自然大调(白键&…...
java八股文面试[数据库]——B树和B+树的区别
B树是一种树状数据结构,它能够存储数据、对其进行排序并允许以O(logn)的时间复杂度进行查找、顺序读取、插入和删除等操作。 1、B树的特性 B树中允许一个结点中包含多个key,可以是3个、4个、5个甚至更多,并不确定,需要看具体的实…...
2、Nginx 安装
文章目录 2、Nginx 安装2.1 官网下载2.2 安装 nginx2.2.1 第一步2.2.2 第二步2.2.3 第三步,安装 nginx2.2.4 第四步,修改防火漆规则 【尚硅谷】尚硅谷Nginx教程由浅入深 志不强者智不达;言不信者行不果。 2、Nginx 安装 2.1 官网下载 nginx…...
最适合 AI 的 Python Web 框架
迷途小书童的 Note 读完需要 4分钟 速读仅需 2 分钟 1 简介 本文将介绍 Gradio 库,它是 Python 的一个 web 框架,可以帮助我们快速构建交互式 AI 应用。我们将了解 Gradio 的应用场景、基本原理、功能介绍,并通过一个代码示例来演示如何使用 …...
算法通关村第十八关——回溯
回溯很大感觉就是多重递归,在递归的题目中,例如斐波那契数列,只需要考虑当前情况以及他的子情况。而在回溯中,要进行很多次递归,并且要对条件进行处理。 LeetCode257:给你一个二叉树的根节点root,按任意顺序ÿ…...
使用kafka还在依赖Zookeeper,kraft模式了解下
Kafka的Kraft模式 概述 Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。其核心组件包含Producer、Broker、Consumer,以及依赖的Zookeeper集群。其中Zookeeper集群是Kafka用来负责集群元数据的管理、控制器…...
【100天精通Python】Day52:Python 数据分析_Numpy入门基础与数组操作
目录 1 NumPy 基础概述 1.1 NumPy的主要特点和功能 1.2 NumPy 安装和导入 2 Numpy 数组 2.1 创建NumPy数组 2.2 数组的形状和维度 2.3 数组的数据类型 2.4 访问和修改数组元素 3 数组操作 3.1 数组运算 3.2 数学函数 3.3 统计函数 4 数组形状操作 4.1 重塑数组形…...
Day01-Java基础语法
目录 1. 人机交互 1.1 什么是cmd? 1.2 如何打开CMD窗口? 1.3 常用CMD命令 1.4 CMD练习 1.5 环境变量 2. Java概述 1.1 Java是什么? 1.2下载和安装 1.2.1 下载 1.2.2 安装 1.2.3 JDK的安装目录介绍 1.3 HelloWorld小案例 2.3.1 …...
代码随想录二刷day06
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、力扣242. 有效的字母异位词二、力扣349. 两个数组的交集三、力扣202. 快乐数四、力扣1两数之和 前言 一、力扣242. 有效的字母异位词 class Solution {pub…...
可扩展的Blender插件开发汇总
成熟的 Blender 3D 插件是令人惊奇的事情。作为 Python 和 Blender 的新手,我经常发现自己被社区中的人们创造的强大的东西弄得目瞪口呆。坦率地说,其中一些包看起来有点神奇,当自我怀疑或冒名顶替综合症的唠叨声音被打破时,很容易想到“如果有人能做出可以做xxx的东西就好…...
2023_Spark_实验二:IDEA安装及配置
一、下载安装包 链接:百度网盘 请输入提取码 所在文件夹:大数据必备工具--》开发工具(前端后端)--》后端 下载文件名称:ideaIU-2019.2.3.exe (喜欢新版本也可安装新版本,新旧版本会存在部分差异) IDEA …...
小赢科技,寻找金融科技核心价
如果说金融是经济的晴雨表,是通过改善供给质量以提高经济质量的切入口,那么金融科技公司,就是这一切行动的推手。上半年,社会经济活跃程度提高背后,金融科技公司既是奉献者,也是受益者。 8月29日࿰…...
NAT与代理服务器
1.DNS Domain Name System 是一整套从域名映射到IP的系统(把域名转化为IP地址) 2.域名简介 3.周鸿祎 傅盛 4.ICMP协议 用来网络故障排查原因 草图理解“位置” ping ICMP 是绕过TCP UDP传输协议的,没有端口号 traceroute 5.NAT技术 N…...
24.排序,插入排序,交换排序
目录 一. 插入排序 (1)直接插入排序 (2)折半插入排序 (3)希尔排序 二. 交换排序 (1)冒泡排序 (2)快速排序 排序:将一组杂乱无章的数据按一…...
Navicat16安装教程
注:因版权原因,本文已去除破解相关的文件和内容 1、在本站下载解压后即可获得Navicat16安装包和破解补丁,如图所示 2、双击“navicat160_premium_cs_x64.exe”程序,即可进入安装界面, 3、点击下一步 4、如图所示勾选“…...
【看表情包学Linux】初识文件描述符 | 虚拟文件系统 (VFS) 初探 | 系统传递标记位 | O_TRUNC | O_APPEND
爆笑教程《看表情包学Linux》👈 猛戳订阅! 💭 写在前面:通过上一章节的讲解,想必大家已对文件系统基本的接口有一个简单的了解,本章我们将继续深入讲解,继续学习系统传递标志位&…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...
Linux链表操作全解析
Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表?1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...
学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
Mac软件卸载指南,简单易懂!
刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"࿰…...
多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
初学 pytest 记录
安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...
听写流程自动化实践,轻量级教育辅助
随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...
