因此,我使用Ansible每天管理我们的AWS实例,现在我正在测试管理我们的网络基础设施(我是网络人员,谁可以做一些系统管理员的东西),但遇到了一个我似乎无法解决的问题。无法打开外壳:Ansible v2.3.1.0
我有一个Cisco 3750G在这里,我已经启用了SSH。我可以使用指定的用户ssh并运行我的剧本中失败的所有命令。
我能成功地使用ping模块从Ansible这个开关,但每当我尝试使用ios_commands
或ios_configs
模块,它失败,出现错误unable to open shell
。
我使用Ansible v2.3.1.0,它具有持久连接作为新功能。做了一些谷歌搜索,我发现有几个人有这个问题,并以各种方式修复它(这些都没有为我工作)。
事情我已经尝试:
- 在
secrets.yaml
文件中指定的连接变量。 然后在秘密文件中使用我的用户名,auth_pass和密码 指定provider
。 - 我
ansible.cfg
文件
更改ansible_connection
设置local
和ssh
(既不 工作)
ios_commands
和ios_configs
(有2个模块之间,但为我用两者都应该采取同样的一些差)
https://docs.ansible.com/ansible/network_debug_troubleshooting.html#category-unable-to-open-shell 该文档指出,我看到的错误通常是一个身份验证问题但这似乎并非如此。
其他人碰到这个或有任何见解? 我有一个日志文件,包含我的playbook运行的调试输出,如果有人想查看。 我已经发布了我的示例剧本以供审阅。
主机:开关 gather_facts:没有 连接:本地 任务:
- name: GATHER CREDENTIALS
include_vars: secrets.yaml
- name: DEFINE CONNECTION PROVIDER
set_fact:
provider:
username: "{{ creds['username'] }}"
password: " {{ creds['password'] }}"
auth_pass: "{{ creds['auth_pass'] }}"
- name: Show interfaces
ios_config:
provider: "{{ provider }}"
commands:
- show ip int br
register: cisco_int
- debug: var=cisco_int.stdout_lines
所以我仍然无法使用该版本的Ansible得到这个工作。我将尝试安装它的较旧版本(没有持久连接功能)并查看是否有效。 –