Ansible、瞻博网络 CLI 命令。超时错误?

2024-04-01

我正在尝试将我用 Python 编写的自动化脚本传输到 ansible (公司请求),但我以前从未使用过 ansible。我已经尝试过“wait_for:”,但我也没有让它发挥作用。在脚本中,我可以设置 dev.timeout=None 或我需要的任何内容。我发现很难弄清楚在 ansible 中哪里可以做到这一点。我尝试在“ansible.cfg”文件中设置超时。但这是行不通的。我可以执行简单的命令,例如:

cli="显示版本",或者 cli=“显示系统固件”。

以下是我的剧本:

    - hosts: local
  roles:
  - Juniper.junos
  connection: local
  gather_facts: no

  tasks:
  - junos_cli:
      host={{ inventory_hostname }}
      user=root
      passwd=Hardware1
      cli="request system snapshot slice alternate"
      dest="{{ inventory_hostname }}.txt"

运行该命令后,大约 120 秒后,我收到以下错误:

fatal: [192.168.2.254]: FAILED! => {"changed": false, "failed": true, "module_stderr": "/usr/local/lib/python2.7/dist-packages/jnpr/junos/device.py:652: RuntimeWarning: CLI command is for debug use only!\n  warnings.warn(\"CLI command is for debug use only!\", RuntimeWarning)\nTraceback (most recent call last):\n  File \"/home/pkb/.ansible/tmp/ansible-tmp-1457428640.58-63826456311723/junos_cli\", line 2140, in <module>\n    main()\n  File \"/home/pkb/.ansible/tmp/ansible-tmp-1457428640.58-63826456311723/junos_cli\", line 177, in main\n    dev.close()\n  File \"/usr/local/lib/python2.7/dist-packages/jnpr/junos/device.py\", line 504, in close\n    self._conn.close_session()\n  File \"/usr/local/lib/python2.7/dist-packages/ncclient/manager.py\", line 158, in wrapper\n    return self.execute(op_cls, *args, **kwds)\n  File \"/usr/local/lib/python2.7/dist-packages/ncclient/manager.py\", line 228, in execute\n    raise_mode=self._raise_mode).request(*args, **kwds)\n  File \"/usr/local/lib/python2.7/dist-packages/ncclient/operations/session.py\", line 28, in request\n    return self._request(new_ele(\"close-session\"))\n  File \"/usr/local/lib/python2.7/dist-packages/ncclient/operations/rpc.py\", line 342, in _request\n    raise TimeoutExpiredError('ncclient timed out while waiting for an rpc reply.')\nncclient.operations.errors.TimeoutExpiredError: ncclient timed out while waiting for an rpc reply.\n", "module_stdout": "", "msg": "MODULE FAILURE", "parsed": false}

我认为这是超时,我可能是错的。但令我头疼的是,如此简单的任务却让我无法完成。


好的,我设法解决了这个问题。

执行 CLI (junos_cli) 的 Ansible 模块不支持超时。因此我进入:

/etc/ansible/roles/Juniper.junos/library/junos_cli

并在下面一行:

dev = Device(args['host'], user=args['user'], password=args['passwd'],
                     port=args['port'], gather_facts=False).open()

I added:

dev.timeout=None

这将计时器设置为无穷大,因此我在执行“请求系统快照切片备用”时有时间进行格式化。

希望这可以帮助其他人通过 ansible 自动化使用 junos cli 做一些事情。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ansible、瞻博网络 CLI 命令。超时错误? 的相关文章

随机推荐

  • Flutter:在启​​动时执行函数 - 等待 HTTP 响应解析器提取图像 URL

    我正在开发一个 Flutter 应用程序 我需要从 API 获取几乎所有内容 包括图像 颜色 文本等 所以我应该做的是构建应用程序的主要结构 然后用 API 提供的信息填充所有内容 当应用程序开始获取响应并初始化变量以在应用程序中使用它们时
  • C# 和 C++ 类继承混合

    我有一堆有趣的程序集想要组合在一起 通用汇编 C 或 C CLI public class MyBase public void MethodA private void MethodB protected virtual MethodC
  • 使用 LINQ 从文件中读取文本数据

    我有以下文本文件 37 44 60 67 15 94 45 02 44 如何使用 LINQ 从此文件中读取所有数字并将它们保存到二维数组中 我所做的就是创建一个简单的数组 其中每行中包含所有第一个值 在这种情况下使用 LINQ 是个好主意还
  • 如何在 c 中的变量中仅存储文件的结束位

    我的代码如下 include
  • Google API key V2 RuntimeException [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我创建了一个示例 Android 应用程序 用于使用 google api key v2 访问 google 地图 当我
  • 在 Haskell 中如何将字符串列表相乘? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在尝试编写一个函数 该函数接受字符串列表和 Int 并返回其中每个字符串都是 int 次的字符串列表 那是 duplicate S
  • Pandas - 根据行值生成唯一 ID

    我想为用户生成一个基于整数的唯一 ID 在我的 df 中 假设我有 index first last dob 0 peter jones 20000101 1 john doe 19870105 2 adam smith 19441212
  • 带 Java 客户端的键值数据库

    我基本上想在磁盘上存储一个哈希表 以便以后可以查询它 我的程序是用Java 编写的 哈希表从字符串映射到列表 那里有很多键值存储 但经过大量研究 阅读后 尚不清楚哪一个最适合我的目的 以下是一些对我来说很重要的事情 简单的键值存储 允许您使
  • 将带有各种分隔符的地址拆分为街道地址、城市、州、邮政编码和国家/地区

    我的数据在 Excel 中 我有几张数据 其中地址始终位于每张数据的同一列中 地址格式的示例包括 1155 15th Street NW Suite 600 华盛顿特区 20005 美国4600 Empire Blvd 200 达勒姆 NC
  • 如何存储单个浏览器选项卡/窗口的状态?

    我正在开发一个单页 jQuery 和 Backbone js Web 应用程序 后端是 JBoss 6 应用程序服务器 到目前为止 我们的结构如下 只有一个servlet 前端控制器 来自 JavaScript 客户端的每个请求都会经过这里
  • 在 Emacs 中如何重新映射键?

    我正在寻找一种方法 可以在 emacs 窗口中切换控制键和大写锁定键 但是当我转到任何其他程序 例如 Firefox 时 我希望能够在新窗口中使用普通控制按钮 选项卡等 附加信息 我正在使用 Ubuntu 但所有系统的答案都很好 因为其他人
  • iOS:保存双重选择器的设置(数据持久性)

    所以我有一个双重选择器 用户可以将每个轮子设置为他们想要的 然后按下一个按钮来显示他们的选择 简单干净 但我想存储这些数据以供以后使用 以便在关闭应用程序并再次重新打开它后它不会消失 现在 我知道如何使用 datePicker 来做到这一点
  • 如何在 CmdletBinding() 脚本中定义函数?

    我正在编写一个脚本 我想使用 PowerShell 的 CmdletBinding 有没有办法在脚本中定义函数 当我尝试时 PowerShell 抱怨 表达式或语句中出现意外的 token 函数 这是我正在尝试做的事情的一个简化示例 Cmd
  • 如何让 GDB 打印 64 位变量?

    我正在使用 GDB 来调试用以下代码组装的代码 nasm felf64 Fdwarf 当我想检查标签符号的值时 比如说 var h dq 1 using print var h GDB 假设该值是 32 位并且只给我最低的 4 个字节 x
  • 32 位操作系统上的 JVM 堆大小

    我使用的是 32 位 win 7 并使用 Eclipse 还有 4GB 内存 我想为我的 java 应用程序分配大约 3 GB 的最大堆大小 但我可以通过 VM 参数分配最大 1 5GB Xmx1056m 我应该怎么办 如果我安装64位wi
  • ng --version 显示 Angular 不支持当前版本的 Node (16.8.0)

    我刚刚安装了最新版本节点 16 8 using nvm and 角度 cli 12 2 但当我跑步时ng version 它显示以下内容 警告 Angular 不支持当前版本的 Node 16 8 0 我尝试降级节点并安装节点 14 15
  • 提交带有请求的表单未通过

    我真的尝试过自己解决这个问题 但我是 pyhon 的新手 所以我无法做到这一点 我一直在尝试为我使用的网站制作一个机器人 并且我正在尝试使用请求库来做到这一点 到目前为止 我的目标非常简单 登录并回复主题 我已经能够通过网络表单登录 但在通
  • 如何使用 Terraform 创建不具有代入角色策略的 AWS IAM 角色?

    使用 AWS MediaConvert 时 说明提供了示例 IAM 政策 https docs aws amazon com mediaconvert latest ug example inline policy kms decrypt
  • 如何最大化 UWP 窗口(非全屏)

    如何使用 C 最大化 UWP 项目中的窗口 不是全屏 我尝试使用窗口边界作为参数的 TryResizeView 方法 但没有任何反应 Thanks 目前在 UWP 中这是不可能的 所以 我无法让你最大化 但我可以让你非常接近 var av
  • Ansible、瞻博网络 CLI 命令。超时错误?

    我正在尝试将我用 Python 编写的自动化脚本传输到 ansible 公司请求 但我以前从未使用过 ansible 我已经尝试过 wait for 但我也没有让它发挥作用 在脚本中 我可以设置 dev timeout None 或我需要的