Невозможно повысить привилегию для включения режима на механизмах Cisco - PullRequest
0 голосов
/ 10 июля 2019

Я пытаюсь использовать ansible для автоматизации на наших устройствах cisco

Playbook


- name: change config
   hosts: switches
   gather_facts: false

   tasks:
    - name: add an acl
      ios_config:
        lines: 
         - ip access-list standard 7 permit 172.16.1.0 0.0.0.255

хост-файл

[switches]
sw1 ansible_host=172.16.1.1

group_vars \ switches.yml


ansible_connection: network_cli
ansible_network_os: ios
ansible_become: yes
ansible_become_method: enable
ansible_ssh_user: *****
ansible_ssh_pass: *****
ansible_become_pass: ******

Если я просто выполню команду ios_command, проблем вообще не будет, но если я попытаюсь использовать ios_config для изменения конфигурации, я получу ошибку ниже.

 [sw1]: FAILED! => {"msg": "unable to elevate privilege to enable mode, at prompt [None] with error: timeout trying to send command: enable"}

SSH к передачам

3Fb>en
HCC password: 
3Fb#

у нас есть приглашение не по умолчанию, как изменить ansible, чтобы соответствовать этому, и есть ли какие-либо другие действия, которые необходимо исправить, чтобы исправить это. Спасибо.

1 Ответ

0 голосов
/ 10 июля 2019

[sw1]: СБОЙ!=> {"msg": "невозможно повысить привилегию для включения режима, в приглашении [Нет] с ошибкой: тайм-аут при попытке отправить команду: включить"}

Q: "We have a non-default prompt, how to change on ansible to match this?"

A: ИМХО, это не связано с подсказкой.Для приглашения по умолчанию установлено значение NONE после _exec_cli_command с ошибкой «error: timeout trying to send command: enable».См. nxos.py

    try:
        self._exec_cli_command(to_bytes(json.dumps(cmd), errors='surrogate_or_strict'))
        prompt = self._get_prompt()
        if prompt is None or not prompt.strip().endswith(b'enable#'):
            raise AnsibleConnectionFailure('failed to elevate privilege to enable mode still at prompt [%s]' % prompt)
    except AnsibleConnectionFailure as e:
        prompt = self._get_prompt()
        raise AnsibleConnectionFailure('unable to elevate privilege to enable mode, at prompt [%s] with error: %s' % (prompt, e.message)

Возможно, вы захотите начать отладку с "exec_command" в connection.py

...