我正在运行ansible v 2.5并试图运行一个基本的" show clock"命令在我的开关上。
如果错误说它无法设置终端参数,
以下是我的yml文件:
---
- hosts: ios_devices
gather_facts: no
connection: local
vars_prompt:
- name: "mgmt_username"
prompt: "Username"
private: no
- name: "mgmt_password"
prompt: "Password"
tasks:
- name: SYS | Define provider
set_fact:
provider:
host: "{{ inventory_hostname }}"
username: "{{ mgmt_username }}"
password: "{{ mgmt_password }}"
- name: IOS | Show clock
ios_command:
provider: "{{ provider }}"
commands:
- show clock
register: clock
- debug: msg="{{ clock.stdout }}"
并且在运行剧本时我收到以下错误:
致命:[x.x.x.x]:失败了! => {" msg":"无法设置终端参数"}
我将不胜感激任何帮助
答案 0 :(得分:1)
错误unable to set terminal parameters
表示以下一个(或两个)命令失败:
terminal length 0
terminal width 512
尝试在您的Cisco IOS交换机上手动运行这些命令,以检查它们是否受支持。
答案 1 :(得分:0)
我也遇到过同样的问题,但是在使用“ asa_command”模块后解决了该问题:
- hosts: ASA
connection: local
gather_facts: no
vars:
cli:
host: "{{ ansible_host }}"
username: "{{ ansible_user }}"
password: "{{ ansible_password }}"
authorize: yes
auth_pass: "{{ ansible_password }}"
tasks:
- name: run multiple commands and evaluate the output
asa_command:
commands:
- show service-policy
- show running-config
provider: "{{ cli }}"
register: output
- debug:
msg: "{{ output.stdout_lines }}"
答案 2 :(得分:0)
是的,必须能够设置以下两个命令:
terminal length 0
和
terminal width 512
您不需要特定特权即可发出这些命令。两者都可以从思科的常规CLI执行模式发出。
检查您的用户名“命令”授权特权,这可能是问题。您可能在IOS设备上配置了有限的命令授权。如果您有权使用“ show running”命令,请尝试使用以下命令检查aaa授权:
show run | i aaa authorization commands
如果看到它在路由器/交换机上定义,则需要与您的网络管理员联系,并确保他们允许您或您正在使用的ansible用户发出“终端长度”和“终端宽度” ”命令。我不知道有其他解决方法。
仅供参考,“ terminal”命令仅限于用户当前的活动会话,不会以任何方式影响任何路由器操作参数。注销后,终端参数将重置为默认值。
对于asa_command解决方法,实际上不建议这样做。 asa和ios具有不同的输出格式,因此,尽管在某些情况下可能会起作用,但可以保证在其他情况下会失败。
如果您将ASA与PIXOS一起使用并且遇到相同的问题,请使用“ Pager”命令来设置终端的长度。
请查看以下Cisco Community链接,以获取有关在不同Cisco设备上设置终端长度的更多信息: