没有用户名登录的 Ansible telnet

标签 ansible telnet cisco

我需要使用 ansible telnet 模块连接到 cisco 设备(我无法启用 SSH)。 我在网上找到的所有教程中,每个人都在指定登录用户名和密码以进行telnet 身份验证。

但我的路由器不需要用户名,auth 提示直接以消息开始:

Password:

这是我的文件:

库存.yml:

[cisco]
test ip_address=xxx.yyy.zzz

[cisco:vars]
password=test
password_enable=test

播放/cisco.yml :

---

- hosts: cisco
  connection: local
  roles:
    - role: cisco-telnet

角色/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 模块?有人已经这样做了吗?

最佳答案

研究 telnet module 的源代码并阅读 documentation我假设以下行为:

If the password is empty then no password prompt is expected.

接下来您可以使用登录提示作为密码。有点奇怪,所以我想下面的代码片段应该可以工作:

- name: Telnet test
  telnet:
    host: "{{ ip_address }}"
    port: 23
    login_prompt: "Password:"
    user: "{{ password }}"
    prompts:
      - '[>|#]'
    command:
      - enable
      - "{{ password_enable }}"
      - show running-config

我无法测试它,因为我没有 telnet 服务器了,你迟到了 20 年;-)

关于没有用户名登录的 Ansible telnet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53777121/

相关文章:

ansible - 检查值是否是列表的一部分,列表的名称位于变量中

mysql - 为什么ansible无法连接到MySql?

ubuntu - Ansible:在 Ubuntu 上重启网络

http - 你能telnet到ssh吗?

ios - 不能 telnet gateway.sandbox.push.apple.com 2195?

vba - 从 VBA 运行 Telnet session

Perl - 输出日志文件

Ansible:将评估变量传递给include

linux - 用于测试入口流量的 Ping 命令

linux - 无法通过 cron 连接到 Anyconnect