Рейтинг:1

Команда Ansible Ad-Hoc — необработанный модуль не работает на устройствах Cisco IOS

флаг us

пытаясь использовать команды Ad Hoc как на моем маршрутизаторе Cisco ios, так и на коммутаторе с -м сырье Модуль. Но вместо этого получаю следующую ошибку.

$ansible -i inventory_file02.ini netgrp -m raw -a "показать версию" -u abdo -K

Ошибка====

СТАНЬТЕ паролем: 
Р1 | НЕ ПРОШЕЛ | rc=127 >>
/bin/sh: 1: показать: не найдено
ненулевой код возврата
SW1 | НЕ ПРОШЕЛ | rc=127 >>
/bin/sh: 1: показать: не найдено
ненулевой код возврата

Файл инвентаря=====

R1 ansible_host=192.168.20.1
SW1 ansible_host=192.168.10.2

[netgrp]
R1
SW1

group_vars/netgrp.yml===

---
ansible_connection: network_cli
ansible_network_os: iOS
ansible_user: живот
absible_password: кали/абдо
ansible_become: да
ansible_become_method: включить
ansible_ssh_pass: кали/абдо

$ ansible -i inventory_file02.ini netgrp -m raw -a "показать версию" -u abdo -kK -vvv

доступный [ядро 2.12.6]
  конфигурационный файл = /etc/ansible/ansible.cfg
  настроенный путь поиска модуля = ['/home/kali/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  расположение модуля ansible python = /usr/local/lib/python3.10/dist-packages/ansible
  расположение коллекции ansible = /home/kali/.ansible/collections:/usr/share/ansible/collections
  местоположение исполняемого файла = /usr/local/bin/ansible
  версия Python = 3.10.4 (основная, 24 марта 2022 г., 13:07:27) [GCC 11.2.0]
  версия джиндзя = 3.0.3
  libyaml = Истина
Использование /etc/ansible/ansible.cfg в качестве файла конфигурации
SSH-пароль: 
СТАНЬТЕ паролем [по умолчанию пароль SSH]: 
host_list отклонил синтаксический анализ /home/kali/ansible_play01/net_play02/inventory_file02.ini, так как он не передал свой метод verify_file()                                                                                                        
скрипт отклонил синтаксический анализ /home/kali/ansible_play01/net_play02/inventory_file02.ini, поскольку он не передал свой метод verify_file()                                                                                                           
auto отклонил синтаксический анализ /home/kali/ansible_play01/net_play02/inventory_file02.ini, поскольку он не передал свой метод verify_file()                                                                                                             
yaml отказался анализировать /home/kali/ansible_play01/net_play02/inventory_file02.ini, так как не передал свой метод verify_file()                                                                                                             
Проанализирован источник инвентаря /home/kali/ansible_play01/net_play02/inventory_file02.ini с помощью плагина ini
Пропуск обратного вызова «по умолчанию», так как у нас уже есть обратный вызов stdout.
Пропуск обратного вызова «минимальный», так как у нас уже есть обратный вызов stdout.
Пропускаем обратный вызов «oneline», так как у нас уже есть обратный вызов stdout.
МЕТА: запуск обработчиков
перенаправление (тип: подключение) ansible.builtin.network_cli на ansible.netcommon.network_cli
перенаправление (тип: подключение) ansible.builtin.network_cli на ansible.netcommon.network_cli
перенаправление (тип: терминал) ansible.builtin.ios на cisco.ios.ios
перенаправление (тип: cliconf) ansible.builtin.ios на cisco.ios.ios
перенаправление (тип: терминал) ansible.builtin.ios на cisco.ios.ios
перенаправление (тип: стать) ansible.builtin.enable на ansible.netcommon.enable
перенаправление (тип: cliconf) ansible.builtin.ios на cisco.ios.ios
перенаправление (тип: стать) ansible.builtin.enable на ansible.netcommon.enable
<192.168.10.2> УСТАНОВИТЬ ЛОКАЛЬНОЕ СОЕДИНЕНИЕ ДЛЯ ПОЛЬЗОВАТЕЛЯ: kali
<192.168.10.2> EXEC показать версию
<192.168.20.1> УСТАНОВИТЬ ЛОКАЛЬНОЕ СОЕДИНЕНИЕ ДЛЯ ПОЛЬЗОВАТЕЛЯ: kali
<192.168.20.1> EXEC показать версию
SW1 | НЕ ПРОШЕЛ | rc=127 >>
/bin/sh: 1: показать: не найдено
ненулевой код возврата
Р1 | НЕ ПРОШЕЛ | rc=127 >>
/bin/sh: 1: показать: не найдено
ненулевой код возврата
Рейтинг:0
флаг cn

УСТАНОВИТЬ МЕСТНОЕ СОЕДИНЕНИЕ это не сообщение -vvv, которое я ожидал, плагин локального подключения просто выполняет команды на локальном хосте. Обратите внимание на оболочку /bin/sh, а не на IOS. Для network_cli я бы ожидал МЕСТНЫЙ вместо этого быть ПАРАМИКО или же ЛИБСШ. (Несколько лет назад сетевые устройства использовали подключаемый модуль локального подключения и параметры модуля, но это давно устарело из-за реальных подключаемых модулей.)

Руководство по устранению неполадок с сетью предполагает, что это может быть просто УСТАНОВИТЬ СОЕДИНЕНИЕ. Но это может быть устаревшим; современные плагины подключения по соглашению включают свое имя.

Таким образом, ваши переменные подключения соответствуют тому, как настроить подключения к IOS, но они могут применяться неправильно. Который вы поместили в group_vars, что является прекрасным выбором. Однако я думаю, что определение хостов R1 и SW1 дважды вызывает проблемы.

Сохраняя инвентарь формата ini, удалите хосты вне группы, но сохраните переменные хоста:

[netgrp]
R1 ansible_host=192.168.20.1
SW1 ansible_host=192.168.10.2

Vars может быть определен практически где угодно. Попробуйте определить их в других местах, чтобы увидеть, что работает, а что кажется естественным. Например, есть синтаксис для определения переменные уровня группы в инвентаре который может заменить использование вами group_vars для деталей подключения.

[сетевая группа:вары]
ansible_connection=network_cli
ansible_network_os=ios
ansible_user = живот
ansible_become_method = включить

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.