Особенности подключения к сетевому оборудованию#
При работе с сетевым оборудованием надо указать, что должно использоваться подключение типа network_cli. Это можно указывать в инвентарном файле, файлах с перемеными и т.д.
Пример настройки для сценария (play):
---
- name: Run show commands on routers
hosts: cisco_routers
connection: network_cli
В Ansible переменные можно указывать в разных местах, поэтому те же настройки можно указать по-другому.
Например, в инвентарном файле:
[cisco_routers]
192.168.100.1
192.168.100.2
192.168.100.3
[cisco_switches]
192.168.100.100
[cisco_routers:vars]
ansible_connection=network_cli
Или в файлах переменных, например, в group_vars/all.yml:
---
ansible_connection: network_cli
Модули, которые используются для работы с сетевым оборудованием, требуют задания нескольких параметров.
Все описание и примеры относятся к модулям ios_x и могут отличаться для других модулей.
Для каждой задачи должны быть доступны такие параметры:
ansible_network_os - например, ios, eos
ansible_user - имя пользователя
ansible_password - пароль
ansible_become - нужно ли переходить в привилегированный режим (enable, для Cisco)
ansible_become_method - каким образом надод переходить в привилегированный режим
ansible_become_pass - пароль для привилегированного режима
Пример указания всех параметров в group_vars/all.yml:
---
ansible_connection: network_cli
ansible_network_os: ios
ansible_user: cisco
ansible_password: cisco
ansible_become: yes
ansible_become_method: enable
ansible_become_pass: cisco
Подготовка к работе с сетевыми модулями#
В следующих разделах рассматривается работа с модулями ios_command, ios_facts и ios_config. Для того, чтобы все примеры playbook работали, надо создать несколько файлов (проверить, что они есть).
Инвентарный файл myhosts.ini:
[cisco_routers]
192.168.100.1
192.168.100.2
192.168.100.3
Конфигурационный файл ansible.cfg:
[defaults]
inventory = myhosts.ini
В файле group_vars/all.yml надо создать параметры для подключения к оборудованию:
---
ansible_connection: network_cli
ansible_network_os: ios
ansible_user: cisco
ansible_password: cisco
ansible_become: yes
ansible_become_method: enable
ansible_become_pass: cisco