我正在尝试使用 Ansible 的“cli_command”模块来配置 Netscaler 设备。对于其中 2 个,运行版本“12.0 - build 60.9.nc”,这样的简单任务可以完美运行:
- name: call NS CLI
cli_command:
command: show nsconf
register: cs_vserver
delegate_to: netscaler_dmz
将“delegate_to”更改为运行版本“NS11.1:Build 56.19.nc”的设备,我收到错误消息:
完整的回溯是: 警告:以下回溯可能与实际故障无关。文件“/tmp/ansible_cli_command_payload_4w503v/ansible_cli_command_payload.zip/ansible/modules/network/cli/cli_command.py”,第 167 行,在主文件“/tmp/ansible_cli_command_payload_4w503v/ansible_cli_command_payload.zip/ansible/module_utils/connection.py”,行185,在RPC中 引发 ConnectionError(to_text(msg, errors='surrogate_then_replace'), code=code) 致命:[localhost -> 172.26.58.112]:失败!=> {“更改”:假,“调用”:{“module_args”:{“答案”:空,“check_all”:假,“命令”:“显示nsconf”,“换行”:真,“提示”: null, "sendonly": false } }, "msg": "命令超时触发,超时值为 30 秒。\n请参阅网络调试和故障排除指南中的超时设置选项。" }
身份验证对所有 3 台设备使用 RSA 密钥,日志显示欢迎横幅并且连接正常(使用 ssh 的手动连接也可以正常工作),但在发生上述错误后不久。奇怪的是,Netscaler 未列在可用网络平台列表中(https://docs.ansible.com/ansible/latest/network/user_guide/platform_index.html#settings-by-platform),但使用以下参数可以正常工作另外两个 Netscaler(库存文件):
all:
hosts:
localhost:
ansible_connection: local
netscaler_dmz_int: <= OK
ansible_host: 192.168.XXX.XXX
ansible_connection: network_cli
ansible_network_os: ios
ansible_user: nsroot
netscaler_dmz_prod: <= OK
ansible_host: 192.168.XXX.XXX
ansible_connection: network_cli
ansible_network_os: ios
ansible_user: nsroot
netscaler_dc: <= KO
ansible_host: 172.26.XXX.XXX
ansible_connection: network_cli
ansible_network_os: ios
ansible_user: nsroot
短期内升级固件是不可行的。问题是否来自旧版本?是否有更充分的参数使其适用于所有 3 台设备?谢谢。