ansible进阶-剧本调试方法

目录

1、调试方法

2、实例

2.1    Debug模块

 2.2    tags标签

2.3    忽略错误


1、调试方法

具体方法应用场景
debug标签执⾏剧本的时候输出剧本的执⾏流程,⼀般配合register⼀起使⽤. 输出facts变量自定义变量
tags标签给⼀些模块加上标签,运⾏剧本的时候可以运⾏指定标签的内容,排除指定标签.
忽略错误运⾏剧本的时候忽略⼀些模块的错误,让剧本继续运⾏.

2、实例

2.1    Debug模块
debug
msg相当于是echo命令,配置着register一起用

实例1-调试-nfs服务端部署剧本

剧本文件及执行结果:

[root@ansible ~]# cat debug-nfs-server.yml 
---
- name: 调试nfs服务端hosts: alltasks:- name: 部署nfs服务端软件yum:name: nfs-utilsstate: installed - name: 创建对应的目录,权限file:path: /nfsfileowner: nfsnobodygroup: nfsnobodystate: directoryregister: file_jieguo- name: 修改配置文件lineinfile: path: /etc/exportsline: "/nfsfile 192.168.81.0/24(rw,sync,root_squash)"state: presentbackup: yes- name: 输出这个过程debug:msg: "{{ file_jieguo }}"- name: 启动rpc服务systemd:name: rpcbindenabled: yesstate: started- name: 启动nfs服务systemd:name: nfsenabled: yesstate: started 
[root@ansible ~]# ansible-playbook debug-nfs-server.yml PLAY [调试nfs服务端] *****************************************************************************************************************************************TASK [Gathering Facts] **********************************************************************************************************************************
ok: [192.168.81.134]
ok: [192.168.81.136]
ok: [192.168.81.133]
ok: [192.168.81.135]
ok: [192.168.81.132]TASK [部署nfs服务端软件] ***************************************************************************************************************************************
ok: [192.168.81.132]
ok: [192.168.81.136]
ok: [192.168.81.133]
ok: [192.168.81.134]
ok: [192.168.81.135]TASK [创建对应的目录,权限] ***************************************************************************************************************************************
changed: [192.168.81.132]
changed: [192.168.81.135]
changed: [192.168.81.136]
changed: [192.168.81.133]
changed: [192.168.81.134]TASK [修改配置文件] *******************************************************************************************************************************************
changed: [192.168.81.132]
changed: [192.168.81.135]
changed: [192.168.81.136]
changed: [192.168.81.134]
changed: [192.168.81.133]TASK [输出这个过程] *******************************************************************************************************************************************
ok: [192.168.81.136] => {"msg": {"changed": true, "diff": {"after": {"group": 65534, "mode": "0777", "owner": 65534, "path": "/nfsfile", "state": "directory"}, "before": {"group": 0, "mode": "0755", "owner": 0, "path": "/nfsfile", "state": "absent"}}, "failed": false, "gid": 65534, "group": "nfsnobody", "mode": "0777", "owner": "nfsnobody", "path": "/nfsfile", "secontext": "unconfined_u:object_r:default_t:s0", "size": 6, "state": "directory", "uid": 65534}
}
ok: [192.168.81.132] => {"msg": {"changed": true, "diff": {"after": {"group": 65534, "mode": "0777", "owner": 65534, "path": "/nfsfile", "state": "directory"}, "before": {"group": 0, "mode": "0755", "owner": 0, "path": "/nfsfile", "state": "absent"}}, "failed": false, "gid": 65534, "group": "nfsnobody", "mode": "0777", "owner": "nfsnobody", "path": "/nfsfile", "secontext": "unconfined_u:object_r:default_t:s0", "size": 6, "state": "directory", "uid": 65534}
}
ok: [192.168.81.134] => {"msg": {"changed": true, "diff": {"after": {"group": 65534, "mode": "0777", "owner": 65534, "path": "/nfsfile", "state": "directory"}, "before": {"group": 0, "mode": "0755", "owner": 0, "path": "/nfsfile", "state": "absent"}}, "failed": false, "gid": 65534, "group": "nfsnobody", "mode": "0777", "owner": "nfsnobody", "path": "/nfsfile", "secontext": "unconfined_u:object_r:default_t:s0", "size": 6, "state": "directory", "uid": 65534}
}
ok: [192.168.81.133] => {"msg": {"changed": true, "diff": {"after": {"group": 65534, "mode": "0777", "owner": 65534, "path": "/nfsfile", "state": "directory"}, "before": {"group": 0, "mode": "0755", "owner": 0, "path": "/nfsfile", "state": "absent"}}, "failed": false, "gid": 65534, "group": "nfsnobody", "mode": "0777", "owner": "nfsnobody", "path": "/nfsfile", "secontext": "unconfined_u:object_r:default_t:s0", "size": 6, "state": "directory", "uid": 65534}
}
ok: [192.168.81.135] => {"msg": {"changed": true, "diff": {"after": {"group": 65534, "mode": "0777", "owner": 65534, "path": "/nfsfile", "state": "directory"}, "before": {"group": 0, "mode": "0755", "owner": 0, "path": "/nfsfile", "state": "absent"}}, "failed": false, "gid": 65534, "group": "nfsnobody", "mode": "0777", "owner": "nfsnobody", "path": "/nfsfile", "secontext": "unconfined_u:object_r:default_t:s0", "size": 6, "state": "directory", "uid": 65534}
}TASK [启动rpc服务] ******************************************************************************************************************************************
changed: [192.168.81.134]
changed: [192.168.81.133]
changed: [192.168.81.132]
changed: [192.168.81.135]
changed: [192.168.81.136]TASK [启动nfs服务] ******************************************************************************************************************************************
changed: [192.168.81.136]
changed: [192.168.81.133]
changed: [192.168.81.134]
changed: [192.168.81.132]
changed: [192.168.81.135]PLAY RECAP **********************************************************************************************************************************************
192.168.81.132             : ok=7    changed=4    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
192.168.81.133             : ok=7    changed=4    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
192.168.81.134             : ok=7    changed=4    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
192.168.81.135             : ok=7    changed=4    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   
192.168.81.136             : ok=7    changed=4    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0   [root@ansible ~]# 

 2.2    tags标签

Ansible中的tags标签用于为任务指定标记,并在运行时根据指定的标记只运行部分任务,从而避免对整个剧本进行执行。在编写包含多个任务的剧本时,有时候只需要在执行时运行其中一任务。这时,使用tag标签是非常有用的,它可以为每个任务指定一个标签,这样在执行时只需要运行指定标签的任务即可。

也可以这样理解

一个剧本里面可能包涵了多个任务,但是又不知道剧本中任务是不是都能执行,不确定,这个时候就可以用标签标记任务,然后运行剧本时指定标签运行不确定能不能执行的任务

执行剧本时,使用--tags选项指定要运行的标签。

运行指定的标签

ansible-play --tags 自定义的标签名 剧本文件名

运行剧本的时候排除指定的标签

ansible-play --skip-tags 要排除的标签名 剧本文件名

实例

2.3    忽略错误

当运行剧本时,剧本是按照任务的编写顺序执行,当某个任务运行出现错误时,则则这个任务下面的任务出现错误时,

用于运行剧本的时候,强制让某个任务(模块)运行即使出现错误,也不会中断我们整个剧本的执行。

实例

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

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

相关文章

OpenHarmony UI动画-rebound

简介 rebound是一个模拟弹簧动力学,用于驱动物理动画的库。 下载安装 ohpm install ohos/reboundOpenHarmony ohpm环境配置等更多内容,请参考如何安装OpenHarmony ohpm 使用说明 import rebound from ohos/rebound;功能一:创建维护弹簧对…

MySQL 锁机制全面解析

目录 1. MySQL的锁类型1.1 全局锁1.2 表锁1.3 行锁1.4 共享锁(读锁)1.5 排它锁(写锁)1.6 死锁 2 乐观锁和悲观锁2.1 乐观锁2.2 悲观锁 3 意向锁4 间隙锁5 临键锁6. 事务隔离级别对锁的影响6.1 读未提交(Read Uncommitt…

3ds Max2024安装包(亲测可用)

目录 一、软件简介 二、软件下载 一、软件简介 3ds Max是一款基于PC系统的强大3D建模、渲染和制作软件,广泛应用于游戏开发、影视后期制作、建筑设计、工业设计等多个领域。其拥有丰富的建模工具,可轻松创建逼真的三维场景和模型;同时&#…

OpenMesh 极小曲面(局部迭代法)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 我们的目标是想得到一个曲率处处为0的曲面,具体操作如下所述: 二、实现代码 #define _USE_MATH_DEFINES #include

Linux 操作系统gdb、makefile

今天是对前面两天的补充和完善。 1、gdb 1.1 gdb 作用 调试程序 1.2 调试bug的步骤 测试:发现问题 固化:让bug重现 定位:找到bug的位置 修改:修改bug 验证 1.3 gdb调试工具的使用 1->想要使用gdb调试工具,在编…

【网站项目】自习室预约系统

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

汽车充电桩充电效率的四大决定因素

随着电动汽车的快速普及,交流充电桩作为电动汽车的充电基础设施,其充电效率受到了广泛的关注。接下来,我们将深入探讨交流充电桩的充电效率,包括充电效率的定义、影响因素以及提升方法。 充电效率的定义 交流充电桩的充电效率指的…

【微信小程序从入门到精通(项目实战)】——微电影小程序

👨‍💻个人主页:开发者-曼亿点 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 曼亿点 原创 👨‍💻 收录于专栏&#xff1a…

2024华中杯C题完整解题思路及代码

C 题 基于光纤传感器的平面曲线重建算法建模 光纤传感技术是伴随着光纤及光通信技术发展起来的一种新型传感器技 术。它是以光波为传感信号、光纤为传输载体来感知外界环境中的信号,其 基本原理是当外界环境参数发生变化时,会引起光纤传感器中光波参量&…

Vue前端框架如何调用天聚数行API?

Vue是一个业内优秀的前端解决方案,采用了最新流行的MVVM框架模式,深受web前端开发者的喜爱,在相关开发者社区也一直都是热门交流话题。那么,如何通过Vue调用天行数据的API接口呢,下面就具体给大家示例。 vue采用的是数…

数字零售力航母-看微软如何重塑媒体

数字零售力航母-看微软如何重塑媒体 - 从2024全美广播协会展会看微软如何整合营销媒体AI技术和AI平台公司 2024年,微软公司联合英伟达总司,赞助全美广播协会展会。本次展会微软通过搭建一个由全面的合作伙伴生态系统支持的可信和安全的平台,…

TCP和UDP协议的区别

1、定义 TCP协议的全称是Transmission Control Protocol(传输控制协议),是一种面向连接的点对点的传输层协议。 UDP协议的全称是User Datagram Protocal(用户数据报协议),为应用程序提供一种无需建立连接…

手机从0基础到精通拍摄,拍摄手法0基础教学,快速入门

课程下载:https://download.csdn.net/download/m0_66047725/89064797 更多资源下载:关注我。 课程内容: 1 为什么学拍摄剪辑.mp4 2 如何选择手机.mp4 3 补光灯的作用.mp4 !三角支架的作用.mp4 5 麦克风的作用.mp4 6 帧率清晰度参数.m…

Hive进阶

目录 一、MapReduce的计算过程 二、Yarn的资源调度 yarn的资源调度策略 三、Hive的语法树 四、Hive配置优化 五、数据开发 六、数据仓库 七、数据仓库开发流程 八、数仓分层 九、ETL和ELT 一、MapReduce的计算过程 分布式计算框架 需要编写代码执行,执行时…

Edge的使用心得与深度探索:优化浏览体验的技巧与建议

随着互联网的快速发展,浏览器已经成为我们日常生活中不可或缺的工具之一。在众多浏览器中,微软Edge凭借其稳定性、安全性和功能丰富性备受用户青睐。本文将深入探讨Edge浏览器的各种功能与技巧,帮助用户优化其浏览体验。 文章目录 Edge翻译插…

iOS 全平台矢量动画库:体积小巧、功能丰富 | 开源日报 No.227

airbnb/lottie-ios Stars: 24k License: NOASSERTION lottie-ios 是一个用于在 iOS 平台上本地渲染 After Effects 矢量动画的库。 该项目主要功能、关键特性、核心优势包括: 跨平台支持:可在 iOS, macOS, tvOS, visionOS, Android 和 Web 上使用实时渲…

ASP.NET医院手麻信息系统源码 .NET6.0+VUE

目录 麻醉记录单 复苏记录单 麻醉文书 手术麻醉信息 1、 体征监控记录 2、 麻醉用药信息 3、 手术事件登记 4、 手术状态变更 5、 麻醉医师交接 6、 其他辅助操作 手麻信息系统是以服务围术期临床业务工作的开展为核心,通过与床边监护设备以及医院H…

OpenCV从入门到精通实战(五)——dnn加载深度学习模型

从指定路径读取图像文件、利用OpenCV进行图像处理,以及使用Caffe框架进行深度学习预测的过程。 下面是程序的主要步骤和对应的实现代码总结: 1. 导入必要的工具包和模型 程序开始先导入需要的库os、numpy、cv2,同时导入utils_paths模块&…

Objective-C网络数据捕获:使用MWFeedParser库下载Stack Overflow示例

概述 Objective-C开发中,网络数据捕获是一项常见而关键的任务,特别是在处理像RSS源这样的实时网络数据流时。MWFeedParser库作为一个优秀的解析工具,提供了简洁而强大的解决方案。本文将深入介绍如何利用MWFeedParser库,以高效、…

【学习笔记二十】EWM TU运输单元业务概述及后台配置

一、EWM TU运输单元业务流程概述 TU是指车辆和运输单元在货场中,移动车辆或运输单元。 车辆是特定运输方式的专用化工具,车辆可以包含一个或多个运输单元,并代表运输车辆的实际实体。 运输单元是用于运输货物的车辆的最小可装载单位,运输单元可以是车辆的固定部分。 …