ansible进阶-剧本调试方法

这篇具有很好参考价值的文章主要介绍了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服务端部署剧本

ansible进阶-剧本调试方法,ansible自动化运维工具,ansible

剧本文件及执行结果:

[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 要排除的标签名 剧本文件名

实例
ansible进阶-剧本调试方法,ansible自动化运维工具,ansible

2.3    忽略错误

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

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

实例

ansible进阶-剧本调试方法,ansible自动化运维工具,ansible文章来源地址https://www.toymoban.com/news/detail-855265.html

到了这里,关于ansible进阶-剧本调试方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【云原生】Ansible自动化批量操作工具&playbook剧本

    目录 1.playbook相关知识 1.1 playbook 的简介 1.2 playbook的 各部分组成 2. 基础的playbook剧本编写实例 2.1 playbook编写Apache安装剧本(yum方式安装)  报错集:  实例2:playbook编写nginx 的yum安装并且能修改其监听端口的剧本 实例3:定义、引用变量  实例4:指定远程主机sudu切换用户

    2024年02月10日
    浏览(38)
  • 自动化运维工具Ansible教程(二)【进阶篇】

    ansible 学习大纲 Ansible 是一个开源的自动化工具,用于配置管理、应用部署和任务执行。它以简单、可读性强的 YAML 格式的 Playbooks 为基础,使得自动化任务变得简单、可维护和可扩展。 简单易用 :Ansible 的设计目标之一是简单易用。它使用 YAML 语法定义任务和配置,无需编

    2024年02月09日
    浏览(40)
  • 【运维知识进阶篇】Ansible自动化运维-PlayBook详解

    这篇文章给大家介绍下PlayBook,我们叫它剧本,它是以一种固定的格式,将多个ad-hoc放入yml文件中。在Ansible中,剧本文件是yml结尾的,在SaltStack中剧本文件是sls结尾的,但是两者语法都是使用的yaml语法。 1、PlayBook功能比ad-hoc全,是对ad-hoc的一种编排 2、PlayBook能很好的控制先

    2024年02月06日
    浏览(57)
  • 【自动化剧本】Role角色

    roles用于层次性、结构化地组织playbook。roles能够根据层次型结构自动装载变量文件、tasks以及handlers等。要使用roles只需要在playbook中使用include指令引入即可。 简单来讲,roles就是通过分别将变量、文件、任务、模板及处理器放置于单独的目录中,并可以便捷的include它们的一种

    2024年02月13日
    浏览(40)
  • 【自动化运维】playbook剧本

    (1)Tasks:任务,即通过 task 调用 ansible 的模板将多个操作组织在一个 playbook 中运行 (2)Variables:变量 (3)Templates:模板 (4)Handlers:处理器,当changed状态条件满足时,(notify)触发执行的操作 (5)Roles:角色 运行playbook Ansible提供了很多种循环结构,一般都命名为wi

    2024年02月15日
    浏览(39)
  • Appium微信小程序自动化之开启webview调试功能方法封装

    Appium在微信小程序自动化时,需要开启微信的webview调试功能,以方便对webview的元素进行定位。 运行代码之后,可以顺利打开微信,通过向自己发送消息并点击消息,开启webview调试功能: 看到这个页面后,表示启动微信webview调试功能启动生效。 欢迎技术交流:

    2024年04月13日
    浏览(47)
  • AI:153-开发一种能够自动化生成电影剧本的人工智能系统

    本文收录于专栏:精通AI实战千例专栏合集 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 每一个案例都附带关键代码,详细讲解供大家学习,希望可以帮到大家。正在不断更新中~ 人工智能(AI)的发展已经

    2024年03月27日
    浏览(67)
  • ansible 云计算 自动化

    四台服务器: ansible: 管理端 node01 node02 node03: 被管理节点 1) 安装 [root@ansible ~]# yum install ansible -y 2) 查看帮助 [root@ansible ~]# ansible-doc -l | wc -l    # 查看模块数量 [root@ansible ~]# ansible-doc -s yum        # 查看yum模块的参数 [root@ansible ~]# ansible-doc yum           # 查看相关帮助信息 (搜

    2023年04月08日
    浏览(41)
  • Ansible 自动化安装软件

    例子如下: 创建一个名为/ansible/package.yml 的 playbook :         将 php 和 mariadb 软件包安装到 dev、test 和 prod 主机组中的主机上         将 RPM Development Tools 软件包组安装到 dev 主机组中的主机上         将 dev 主机组中主机上的所有软件包更新为最新版本 这里使用了 yum模块

    2024年02月11日
    浏览(50)
  • Ansible自动化部署工具

    1、运维工具特点 Ansible 与 Saltstack 均是基于 Python 语言开发,Ansible 只需要在一台普通的服务器上运行即可,不需要在客户端服务器上安装客户端。因为 Ansible 是基于 SSH 远程管理,而Linux服务器大都离不开SSH,所以Ansible不需要为配置工作添加额外的支持。 Ansible 安装使用非常

    2024年02月01日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包