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: all
  tasks:
    - name: 部署nfs服务端软件
      yum:
        name: nfs-utils
        state: installed 

    - name: 创建对应的目录,权限
      file:
        path: /nfsfile
        owner: nfsnobody
        group: nfsnobody
        state: directory
        register: file_jieguo

   
    - name: 修改配置文件
      lineinfile: 
        path: /etc/exports
        line: "/nfsfile 192.168.81.0/24(rw,sync,root_squash)"
        state: present
        backup: yes
    
    - name: 输出这个过程
      debug:
        msg: "{{ file_jieguo }}"


    - name: 启动rpc服务
      systemd:
        name: rpcbind
        enabled: yes
        state: started

    - name: 启动nfs服务
      systemd:
        name: nfs
        enabled: yes
        state: 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    忽略错误

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

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

实例

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Halo自定义文章分类

在自定义站点的时候,往往需要再特定的页面展示个性的内容,为了满足这个特殊的要求,就需要文章自定义标签,然后挂载到自定义下面达到自己要的效果。 Halo版本 版本:2.12在theme.yaml指定文章分类页 spec:customTempla…

springboot 载入自定义的yml文件转DTO

改进方法,直接spring注入 import cn.hutool.json.JSONUtil; import org.springframework.beans.factory.config.YamlMapFactoryBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import …

Pulsar【部署 01】消息队列PULSAR在Linux环境的主程序安装使用(小内存服务器问题处理)

官方网站:https://pulsar.apache.org/ 对于本地开发和测试,您可以在机器上以单机模式运行Pulsar。单机模式在单个Java虚拟机(JVM)进程中运行所有组件。本地单机版安装手册: 消息队列PULSAR在Linux环境的主程序安装使用 1.Prerequisites1.1 Pu…

万兆以太网MAC设计(4)CRC_process模块

文章目录 前言一、模块功能二、实现过程三、仿真总结 前言 上文介绍的MAC_RX模块当中增加了CRC校验和比对的功能,本文将根据CRC校验的结果,来决定将数据输出到上层用户还是丢弃。 一、模块功能 接收MAC_RX模块输出的AXIS数据,存入本地环形…

每日两题1

文章目录 使用最小花费爬楼梯91解码方法 使用最小花费爬楼梯 class Solution { public:int minCostClimbingStairs(vector<int>& cost) {if(cost.size() 2)return min(cost[0],cost[1]);vector<int> dp;dp.reserve(cost.size()1);dp[0] 0;dp[1] 0;for(int i…

Flink KafkaSink分区配置的不同版本对比

Flink KafkaSink分区配置的不同版本对比 在不同版本的Flink中&#xff0c;KafkaSink 分区默认配置方式可能会有一些变化。以下是摘自Flink官方文档不同版本的原文&#xff1a; 1. Flink版本&#xff1a;1.12~1.19 Sink 分区 # 配置项 sink.partitioner 指定了从 Flink 分区到 …

eBay、亚马逊自养号测评如何避免风控账号关联选择合适网络IP环境

在自养号下单中选择适合的网络环境至关重要。经过多次实践与测试&#xff0c;积累了大量的经验&#xff0c;希望能够与大家分享&#xff0c;帮助大家避开陷阱&#xff0c;顺利前行。 市面上的网络环境种类繁多&#xff0c;从纯IP类的Luminati、Rola&#xff0c;到纯环境类的VM…

Redis 的数据结构和内部编码

Redis的 5 种数据类型 Redis 底层在实现上述数据结构的时候&#xff0c;会在源码层面&#xff0c;针对上述实现进行 特定的优化 &#xff0c;来达到节省时间/节省空间效果 特定的优化&#xff1a;内部的具体实现的数据结构&#xff0c;在特定场景下&#xff0c;不是其对应的标准…

ros1 C++ 输出helloworld

1、创建工作空间并初始化 mkdir -p 自定义空间名称/src cd 自定义空间名称 catkin_make运行完&#xff0c;生成文件如下图&#xff1a; 2、进入 src 创建 ros 包并添加依赖 cd src catkin_create_pkg 自定义ROS包名 roscpp rospy std_msgs这里&#xff0c;我的自定义ROS包名…

VUE 页码分页封装

VUE 页码封装组件 pagination/index.vue &#xff1a; <template><div class"pagination-contianer"><el-pagination background layout"prev, pager, next" :total"total" current-change"currentChange"> </e…

SQL255 给出employees表中排名为奇数行的first_name

题目来源&#xff1a; 给出employees表中排名为奇数行的first_name_牛客题霸_牛客网 描述 对于employees表中&#xff0c;输出first_name排名(按first_name升序排序)为奇数的first_name CREATE TABLE employees ( emp_no int(11) NOT NULL, birth_date date NOT NULL, firs…

【服务器部署篇】Linux下Redis安装

作者介绍&#xff1a;本人笔名姑苏老陈&#xff0c;从事JAVA开发工作十多年了&#xff0c;带过刚毕业的实习生&#xff0c;也带过技术团队。最近有个朋友的表弟&#xff0c;马上要大学毕业了&#xff0c;想从事JAVA开发工作&#xff0c;但不知道从何处入手。于是&#xff0c;产…

基于SpringBoot的幼儿园管理系统 免费获取源码

项目源码获取方式放在文章末尾处 项目技术 数据库&#xff1a;Mysql5.7 数据表&#xff1a;16张 开发语言&#xff1a;Java(jdk1.8) 开发工具&#xff1a;idea 前端技术&#xff1a;html 后端技术&#xff1a;SpringBoot 功能简介 项目获取关键字&#xff1a;幼儿园 该…

《大话数据结构》03 线性表

1. 线性表的定义 线性表&#xff1a;零个或多个数据元素的有限序列。 这里需要强调几个关键的地方。 首先它是一个序列。也就是说&#xff0c;元素之间是有顺序的&#xff0c;若元素存在多个&#xff0c;则第一个元素无前驱&#xff0c;最后一个元素无后继&#xff0c;其他每…

基于云计算技术的HIS系统,一体化云HIS、云病历、云LIS系统源码,扩展后能够应用于医联体/医共体

医院信息管理系统云HIS系统源码&#xff0c;云计算技术的HIS系统源码 开发技术&#xff1a; 前端&#xff1a;AngularNginx&#xff1b; 后台&#xff1a;JavaSpring&#xff0c;SpringBoot&#xff0c;SpringMVC&#xff0c;SpringSecurity&#xff0c;MyBatisPlus 等&…

基于ssm校园驿站全天候辅助取货管理系统的设计与实现论文

摘 要 身处网络时代&#xff0c;随着网络系统体系发展的不断成熟和完善&#xff0c;人们的生活也随之发生了很大的变化&#xff0c;人们在追求较高物质生活的同时&#xff0c;也在想着如何使自身的精神内涵得到提升&#xff0c;而读书就是人们获得精神享受非常重要的途径。为了…

DNS服务器的管理与配置

目录 一、相关知识 域名空间 DNS服务器分类 域名解析过程 资源记录 二、安装DNS服务 安装bind软件包 DNS服务的启动与停止 配置主要名称服务器 主配置文件 从例子学起&#xff1a; &#xff08;1&#xff09;建立主配置文件named.conf &#xff08;2&#xff09;…

酒店管理系统

文章目录 酒店管理系统一、项目演示二、项目介绍三、15000字论文参考四、部分功能截图五、部分代码展示六、底部获取项目源码和万字论文参考&#xff08;9.9&#xffe5;带走&#xff09; 酒店管理系统 一、项目演示 酒店管理系统 二、项目介绍 基于springbootvue前后端分离的…

亿级流量系统多级缓存架构6

亿级流量系统多级缓存架构6 服务限流 什么叫限流&#xff1f; Ab测试 yum install httpd-tools即限制流量进入 缓存&#xff0c;是用来增加系统吞吐量&#xff0c;提升访问速度提供高并发。 降级&#xff0c;是在系统某些服务组件不可用的时候、流量暴增、资源耗尽等情况…

宠物店小程序如何搭建制作?宠物店小程序核心功能有哪些?

随着宠物经济的兴起&#xff0c;宠物店的线上服务需求日益增长。微信小程序作为一种便捷的线上服务平台&#xff0c;为宠物店提供了一个与爱宠人士建立联系的新渠道。面对市场上众多的小程序开发选项&#xff0c;宠物店应该如何选择或制作一款适合自己的小程序呢&#xff1f;本…