juniper_junos_software устанавливает программное обеспечение, но задача не выполняется из-за "Нет обработчиков.."

Я пытаюсь установить 12.3X48-D70 на SRX550 с помощью модуля juniper_junos_software, и пока он успешно устанавливает и перезагружает устройство, задача возвращается как сбойная из-за ошибок "Нет обработчиков".

Playbook:

- name: Upgrade Juniper devices
  juniper_junos_software:
    host: "{{ inventory_hostname }}"
    local_package: "junos-srxsme-12.3X48-D70.3-domestic.tgz"
    reboot: yes
    version: "12.3X48-D70.3"
    user: user
    passwd: "{{ secret }}"
    port: 22
  ignore_errors: True
  register: junos_upgrade
  when: junos_before|success

Подробный вывод:

TASK [code_upgrade : Upgrade Juniper devices] ***********************************************************
task path: /etc/ansible/new_test/.git/dev/code_upgrade/roles/code_upgrade/tasks/main2.yml:13
fatal: [lab-3]: FAILED! => {
    "changed": false,
    "module_stderr": "No handlers could be found for logger \"ncclient.transport.session\"\nTraceback (most recent call last):\n  File \"/tmp/ansible_0fR5rt/ansible_module_juniper_junos_software.py\", line 747, in <module>\n    main()\n  File \"/tmp/ansible_0fR5rt/ansible_module_juniper_junos_software.py\", line 743, in main\n    junos_module.exit_json(**results)\n  File \"/tmp/ansible_0fR5rt/ansible_modlib.zip/ansible/module_utils/juniper_junos_common.py\", line 792, in exit_json\n  File \"/tmp/ansible_0fR5rt/ansible_modlib.zip/ansible/module_utils/juniper_junos_common.py\", line 1327, in close\n  File \"/usr/lib/python2.7/site-packages/jnpr/junos/device.py\", line 1317, in close\n    self._conn.close_session()\n  File \"/usr/lib/python2.7/site-packages/ncclient/manager.py\", line 162, in wrapper\n    return self.execute(op_cls, *args, **kwds)\n  File \"/usr/lib/python2.7/site-packages/ncclient/manager.py\", line 232, in execute\n    raise_mode=self._raise_mode).request(*args, **kwds)\n  File \"/usr/lib/python2.7/site-packages/ncclient/operations/session.py\", line 28, in request\n    return self._request(new_ele(\"close-session\"))\n  File \"/usr/lib/python2.7/site-packages/ncclient/operations/rpc.py\", line 343, 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",
    "rc": 1

Ошибка появляется вскоре после того, как устройство инициирует перезагрузку и переходит в автономный режим. У меня нет этой проблемы ни с одним из других модулей можжевельника.

Я использую Ansible 2.4.2, junos-eznc 2.1.8, python 2.7.5, а роль Juniper.junos - 2.1.0.

1 ответ

Кто-то уже сообщал о такой проблеме разработчикам Junos, похоже, вы пострадали от ошибок https://github.com/Juniper/ansible-junos-stdlib/pull/361 и https://github.com/Juniper/py-junos-eznc/issues/651.

Однако исправление присутствует в выпуске 2.1.0 ansible-junos-stdlib (тот, который у вас есть), поэтому мне не ясно, является ли это той же самой ошибкой или другой тесно связанной.

Лучший способ решить эту проблему - связаться с разработчиками, чтобы сообщить о проблеме на Github, подтвердить, что это та же самая ошибка или другая, и исправить ее.

Другие вопросы по тегам