Brocade/ICX 的 Ansible 模块是否行为异常?

Brocade/ICX 的 Ansible 模块是否行为异常?

我必须使用 Ansible 在我的基础设施中执行一些网络自动化。

当我尝试将 Ansible 模块用于 ICX 交换机时,它似乎出现故障。

我使用的剧本

- name: ICX switch testing
  hosts: test-switch
  gather_facts: no

  vars:
    ansible_user: username
    ansible_password: password
    ansible_connection=ansible.netcommon.network_cli
    ansible_network_os=icx

  tasks:

    - name: show version
      icx_command:
        commands:
          - show version

为此我得到以下错误

FAILED! => {"changed": false, "msg": "skip\r\nInvalid input -> skip\r\nType ? for a list\r\nSSH@ICX7250-24P Switch>"}

当我使用 Ansible_become 启用模式时,会出现以下错误

FAILED! => {"changed": false, "msg": "unable to elevate privilege to enable mode, at prompt [None] with error: timeout value 60 seconds reached while trying to send command: b'enable'"}

我不确定为什么命令启用更改为 b'enable。似乎模块存在一些问题

ansible 版本

ansible 2.9.9
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.6/site-packages/ansible
  executable location = /usr/local/bin/ansible
  python version = 3.6.8 (default, Sep 26 2019, 11:57:09) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]

答案1

根据给定的剧本

  vars:
    ansible_user: username
    ansible_password: password
    ansible_connection=ansible.netcommon.network_cli
    ansible_network_os=icx

以及错误信息

Invalid input -> skip\r\nType ? for a list

vars:部分内容有拼写错误

  vars:
    ansible_user: username
    ansible_password: password
    ansible_connection: ansible.netcommon.network_cli
    ansible_network_os: icx

更多文件

答案2

关于这个特定的错误:

Invalid input -> skip\r\nType ? for a list

您可能必须修改实际的icx_config.py模块。

例如,在 Mac 上,它位于此处:

/usr/local/Cellar/ansible/6.4.0/libexec/lib/python3.10/site-packages/ansible_collections/community/network/plugins/modules/network/icx/icx_config.py

您必须修改的行可能是 364:

run_commands(module, 'skip')

将其注释掉并重试。

#run_commands(module, 'skip')

在谷歌搜索无果后,我花了很多天才弄清楚这一点,所以也许它对将来的某些人有所帮助。

相关内容