我需要使用可访问的telnet模块连接到cisco设备(我无法启用SSH)。 在网上找到的所有教程中,每个人都在指定登录名和用于在telnet中进行身份验证的密码。
但是我的路由器不需要用户名,auth提示直接从消息开始:
Password:
这是我的文件:
inventory.yml:
[cisco]
test ip_address=xxx.yyy.zzz
[cisco:vars]
password=test
password_enable=test
plays / cisco.yml:
---
- hosts: cisco
connection: local
roles:
- role: cisco-telnet
roles / cisco-telnet / tasks / main.yml:
---
- name: Telnet test
telnet:
host: "{{ ip_address }}"
port: 23
password_prompt: "Password:"
password: "{{ password }}"
prompts:
- '[>|#]'
command:
- enable
- "{{ password_enable }}"
- show running-config
我每次都会收到一条错误消息:
FAILED! => {
"msg": "Unexpected failure during module execution.",
"stdout": ""
}
如何在不指定用户名的情况下使用telnet模块?有人已经做到了吗?
答案 0 :(得分:2)
研究telnet module的源代码并阅读documentation,我认为是以下行为:
如果
password
为空,则不会有password prompt
。
因此可以将login prompt
用于password
。有点奇怪,所以我猜下面的代码片段应该起作用:
- name: Telnet test
telnet:
host: "{{ ip_address }}"
port: 23
login_prompt: "Password:"
user: "{{ password }}"
prompts:
- '[>|#]'
command:
- enable
- "{{ password_enable }}"
- show running-config
我无法进行测试,因为我已经没有telnet服务器了,您已经晚了20年;-)