Автоматизация управления сетевыми интерфейсами через Ansible

Как это работает?
Всё завязано на так называемых плейбуках (playbooks) – текстовых файлах в формате YAML. Именно в них ты описываешь, что именно хочешь настроить. Ansible обрабатывает их и применяет изменения на целевых устройствах. Это не только ускоряет процесс, но и снижает риск ошибок.
Создание базового плейбука
Первый шаг – создать плейбук, который будет управлять сетевыми интерфейсами. Здесь начинается самое интересное.
Шаг 1: Настройка инвентаря
В Ansible тебе нужно указать, какие устройства ты собираешься настраивать. Это делается в файле инвентаря. Пример файла:
[routers]
router1 ansible_host=192.168.1.1 ansible_user=admin ansible_password=secret
router2 ansible_host=192.168.1.2 ansible_user=admin ansible_password=secret
Этот файл говорит Ansible, что у тебя есть два устройства – router1 и router2. У каждого указан IP-адрес, имя пользователя и пароль для доступа.
Шаг 2: Пишем плейбук
Теперь создаём плейбук. Допустим, ты хочешь настроить интерфейс на router1. Вот пример:
- name: Настройка сетевых интерфейсов
hosts: routers
tasks:
- name: Настроить интерфейс GigabitEthernet0/1
ios_config:
lines:
- interface GigabitEthernet0/1
- description Configured by Ansible
- ip address 192.168.100.1 255.255.255.0
- no shutdown
Этот плейбук говорит Ansible:
- Подключись к группе устройств routers.
- Выполни команду настройки интерфейса с описанием и IP-адресом.
Более сложные сценарии
Когда базовая настройка освоена, можно переходить к более сложным задачам.
Вариант 1: Добавление VLAN
Если нужно добавить VLAN, это делается почти так же просто:
- name: Добавление VLAN
hosts: routers
tasks:
- name: Создать VLAN 10
ios_config:
lines:
- vlan 10
- name Management
Этот пример покажет, как создать VLAN с ID 10 и именем Management.
Вариант 2: Проверка состояния интерфейсов
Чтобы убедиться, что всё работает, можно использовать модуль ios_command для выполнения проверок:
- name: Проверка интерфейсов
hosts: routers
tasks:
- name: Получить статус интерфейсов
ios_command:
commands:
- show ip interface brief
Результат команды будет сохранён, и ты сможешь легко проанализировать его.
Вариант 3: Массовое изменение конфигурации
Если требуется внести изменения на всех устройствах, просто добавь больше команд в свой плейбук. Ansible сам позаботится о том, чтобы изменения применились повсеместно.
Комментарии