首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ansible,Juniper命令。超时错误?

Ansible,Juniper命令。超时错误?
EN

Stack Overflow用户
提问于 2016-03-08 09:34:40
回答 2查看 1.4K关注 0票数 2

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

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

以下是我的剧本:

代码语言:javascript
复制
    - 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秒钟后,将得到以下错误:

代码语言:javascript
复制
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}

我想是暂停了,我可能错了。但这是在做我的头脑,这样一个简单的任务是逃避我。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-09 09:33:25

好吧,我设法解决了问题。

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

代码语言:javascript
复制
/etc/ansible/roles/Juniper.junos/library/junos_cli

和线下:

代码语言:javascript
复制
dev = Device(args['host'], user=args['user'], password=args['passwd'],
                     port=args['port'], gather_facts=False).open()

我补充说:

代码语言:javascript
复制
dev.timeout=None

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

希望这能帮助其他人通过ansible自动化对junos cli做些什么。

票数 1
EN

Stack Overflow用户

发布于 2016-04-12 11:41:53

建议将超时值增加到适当的数目(例如300秒),我们认为这对调用应该是有益的,而不是使其无限。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35863701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档