无需用户名登录的Ansible telnet

时间:2018-12-14 09:44:29

标签: ansible telnet cisco

我需要使用可访问的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模块?有人已经做到了吗?

1 个答案:

答案 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年;-)