Описание
Модуль Ansible для управления конфигурациями маршрутизаторов ESR. Модуль позволяет управлять как отдельными частями конфигурации, так и загружать файл конфигурации целиком.
Параметры
Параметр | Варианты/По умолчанию | Комментарий |
---|---|---|
after - | Набор команд, который будет добавлен в конец списка команд, отправляемых на устройство, если необходимо внести изменения. Данный параметр позволяет выполнить команды после основного набора команд, отправляемого на устройство. | |
apply_when - | Варианты:
| Данный параметр управляет отправкой команды commit на устройство. Если параметр установлен в always, то команда commit отправится на устройство в независимости от необходимости внесения изменений. Если параметр установлен в modified, то команда commit отправится на устройство только в том случае, если текущая конфигурация устройства отличается от требуемой. Если параметр установлен в never, то команда commit не будет отправлена на устройство. Если команда commit была отправлена на устройство, то будет активирован таймер (по умолчанию 600 секунд), по истечению которого на устройстве будет произведён автоматический откат на действующую ранее конфигурацию. Для остановки этого таймера и применения внесённых изменений необходимо использовать параметр save_when. |
backup boolean | Варианты:
| Данный параметр даёт указание модулю получить полный бэкап текущей конфигурации с устройства, прежде чем какие-либо изменения будут произведены. Файл бэкапа будет сохранён в каталоге backup в корневой директории плейбука. Если каталог отсутствует, то он будет создан. |
before - | ||
lines - | ||
parents - | ||
save_when - | Варианты:
| Данный параметр управляет отправкой команды confirm на устройство. Если параметр установлен в always, то команда confirm отправится в независимости от применённых изменений. Если параметр установлен в applied, то команда confirm будет отправлена только в том случае, если на устройстве были применены какие-то изменения в соответствии с параметром apply_when. Если параметр установлен в never, то команда confirm не будет отправлена на устройство и по истечению заданного времени (по умолчанию 600 секунд) устройство произведёт автоматический откат на действующую ранее конфигурацию. |
sftp_user - | Данный параметр указывает имя пользователя, с которым необходимо подключиться к устройству по протоколу sftp. Игнорируется, если параметр use_sftp установлен в false. | |
sftp_password - | Данный параметр указывает пароль, с которым необходимо подключиться к устройству по протоколу sftp с использованием имени пользователя, указанного в параметре sftp_user. Игнорируется, если параметр use_sftp установлен в false. | |
src - | - | В данном параметре указывается путь к файлу, содержащему валидную конфигурацию маршрутизатора ESR, либо шаблон конфигурации. При использовании данного параметра произойдёт полная замена текущей конфигурации. |
use_sftp boolean | Варианты:
| Данный параметр даёт указание использовать протокол sftp для отправки конфигурации на устройство при использовании параметра src. Для работы необходимо также указать параметры sftp_user и sftp_password. |
Примечания
- Протестировано на версии ПО ESR 1.6.2
- Для ускорения загрузки конфигурации при использовании параметра src рекомендуется использовать параметр use_sftp.
- Для использования протокола sftp для загрузки конфигурации необходимо предварительно создать на устройстве пользователя для работы с sftp, указав в настройках этого пользователя ip sftp enable. Данный функционал доступен на ПО ESR версий не ниже 1.6.2
- Для корректной работы необходима версия Ansible не ниже 2.7.6
- Сокращённые команды не являются идемпотентными, подробнее смотрите здесь
- Для получения информации об использовании Ansible для управлении сетевыми устройствами обратитесь к официальному руководству Ansible
Примеры
- name: get full backup from ESR device esr_config: backup: true - name: upload config from src to ESR device whith sftp and confirm esr_config: src: esr-1000.cfg use_sftp: true sftp_user: sftpuser sftp_password: sftppassword save_when: applied - name: render a Jinja2 template onto a ESR device esr_config: src: esr-config.j2 save_when: applied - name: add sftp user esr_config: save_when: applied parents: - username sftpuser lines: - password sftppassword - ip sftp enable - name: configure ip helpers on multiple interfaces esr_config: save_when: applied lines: - ip helper-address 192.168.0.10 parents: "{{ item }}" with_items: - bridge 1 - bridge 2 - bridge 3 - name: for idempotency, use full-form commands esr_config: parents: # - br 6 - bridge 6 lines: # - ip help 192.168.0.10 - ip helper-address 192.168.0.10
Возвращаемые значения
В общем случае возвращаемые значения описаны здесь. Ниже перечислены уникальные для модуля значения:
Значение | Условие | Описание |
---|---|---|
backup_path string | когда параметр backup установлен в true | Полный путь к файлу бэкапа Пример: /ansible/playbooks/backup/esr-1000-config.2019-02-19@11:10:06 |
commands list | всегда | Набор команд, которые будут отправлены на устройство Пример: ['hostname esr-1000', 'ip ssh server', 'ip telnet server'] |
updates list | всегда | Набор команд, которые будут отправлены на устройство Пример: ['hostname esr-1000', 'ip ssh server', 'ip telnet server'] |
Установка
Для установки скачайте архив по ссылке выше, распакуйте и запустите скрипт install.py
tar xvzf esr_ansible.tar.gz cd ./esr_ansible python install.py