ct — это скрипт для подключения к сетевым устройствам Cisco, а также для получения и сохранения их конфигураций с помощью Nornir и Scrapli. Скрипт поддерживает различные способы подключения, позволяет запускать интерактивные SSH-сессии, а также автоматически сохраняет конфигурацию устройств в git-репозиторий для аудита изменений.
- Подключение к Cisco-устройствам через SSH (с поддержкой ввода паролей и enable-секрета).
- Получение и сохранение конфигурации устройств.
- Автоматическое коммитирование полученных конфигураций в git-репозиторий.
- Гибкая фильтрация устройств и выбор способа подключения (локальный, туннель, внешний IP).
- Интерактивный режим работы.
- Python 3.6+
- Nornir
- Scrapli
- pexpect
- GitPython
- Файл конфигурации Nornir: /opt/ct/config.yaml
- Виртуальное окружение Python: /opt/ct/venv/
- Каталог для хранения конфигураций: /usr/local/Cisco/confs
- Клонируйте репозиторий:
git clone https://github.com/mrgrin-93/ct.git cd ct - Установите зависимости:
pip install -r requirements.txt
- Настройте файл /opt/ct/config.yaml для вашего инвентаря Nornir.
- Настройте файл /opt/ct/config.yaml для вашего инвентаря Nornir.
/opt/ct/venv/bin/python3 ct <hostname> [опции]- — имя устройства (из инвентаря Nornir).
- -L — открыть интерактивную SSH-сессию.
- -t1 — подключиться через tunnel 1.
- -t2 — подключиться через tunnel 2.
- -e1 — подключиться через внешний IP 1.
- -e2 — подключиться через внешний IP 2.
- -R — получить и сохранить конфигурацию (sh run) устройства.
Открыть интерактивную SSH-сессию на устройство:
python3 ct <hostname> -LПолучить и сохранить конфигурацию:
python3 ct <hostname> -R- ct — основной скрипт подключения и управления устройствами.
- /opt/ct/config.yaml — конфигурация Nornir.
- /usr/local/Cisco/confs — каталог для сохранённых конфигураций (под git).
- /opt/ct/scripts/get_config.py — вспомогательный скрипт для получения конфигурации.
После подключения и сохранения конфигурации, изменения автоматически коммитятся в git-репозиторий. Это позволяет отслеживать, кто и когда получал конфигурации устройств.