Как использовать Ansible для управления сетевыми маршрутизаторами

На список статей
Blog image

Защитите свои сайты с My-Sites-Guard.com!
Сервис обеспечивает надежную защиту ваших веб-ресурсов: мониторинг доступности сайта, контроль валидности сертификатов, а также возможность собирать и анализировать логи работы сервера. My-Sites-Guard.com — всё для сохранности вашего сайта и спокойствия в работе!

Создание простого плейбука для управления маршрутизаторами

Плейбук — это YAML-файл, в котором описаны задачи для выполнения на одном или нескольких устройствах. Основной принцип работы Ansible — выполнение задач без необходимости устанавливать агенты на целевых устройствах.

Пример простого плейбука для проверки конфигурации маршрутизатора:

---
- name: Проверка конфигурации маршрутизатора
 hosts: routers
 gather_facts: no
 tasks:
   - name: Проверить текущую конфигурацию
     ansible.netcommon.cli_command:
       command: show running-config
     register: config_output

   - name: Показать конфигурацию
     debug:
       var: config_output.stdout

В этом плейбуке используется модуль cli_command, который позволяет выполнять команды на устройствах. Результаты сохраняются в переменной config_output, а затем выводятся с помощью модуля debug.

Настройка и применение конфигурации

Ansible позволяет не только просматривать конфигурацию, но и изменять ее. Например, можно изменить настройки интерфейса или создать новые маршруты.

Пример плейбука для настройки интерфейса:

---
- name: Настройка интерфейса на маршрутизаторе
 hosts: routers
 gather_facts: no
 tasks:
   - name: Настроить интерфейс GigabitEthernet0/1
     ansible.netcommon.cli_config:
       lines:
         - interface GigabitEthernet0/1
         - ip address 192.168.10.1 255.255.255.0
         - no shutdown

В этом плейбуке модуль cli_config используется для внесения изменений в конфигурацию маршрутизатора. Он добавляет строки конфигурации на устройство, обеспечивая автоматизацию процессов без вмешательства вручную.

Пример работы с плейбуками: вы также можете использовать переменные для повышения гибкости плейбуков. Например, определите IP-адреса в отдельном файле vars.yml:

interface_ip: 192.168.20.1
subnet_mask: 255.255.255.0

И модифицируйте плейбук для использования этих переменных:

---
- name: Настройка интерфейса с переменными
 hosts: routers
 gather_facts: no
 vars_files:
   - vars.yml
 tasks:
   - name: Настроить интерфейс
     ansible.netcommon.cli_config:
       lines:
         - interface GigabitEthernet0/2
         - ip address {{ interface_ip }} {{ subnet_mask }}
         - no shutdown

Управление конфигурацией и проверка изменений

После внесения изменений важно убедиться, что конфигурация была применена правильно и не вызвала проблем. Для этого вы можете использовать дополнительные задачи проверки и резервного копирования.

Пример резервного копирования конфигурации:

---
- name: Резервное копирование конфигурации маршрутизатора
 hosts: routers
 gather_facts: no
 tasks:
   - name: Сохранить текущую конфигурацию в файл
     ansible.builtin.copy:
       src: running-config
       dest: /backup/configs/{{ inventory_hostname }}.cfg

В этом примере модуль ansible.builtin.copy используется для создания резервной копии текущей конфигурации устройства.

Комментарии

Пока нет комментариев

Добавить комментарий