All streams
Search
Write a publication
Pull to refresh
-6
0
Send message

пожалуйста, дайте мне знать почему не интересен топик? нужна миграция с хуавея или на хуавей?

можно создать любой другой список устройств в любом файле и например txt тоже, потом открывать данный файл из python netmiko и брать построчно имя устройства и ip адрес устройства, и python программа будет конектиться последовательно к каждому. потребуется модификация программы.

и ансибл не обязателен для запуска моей программы.

Как ваш скрипт опрашивает устройства ? скрипт коннектится к каждому устройству из списка по SSH,

это делают команды netmiko_connection , скрипт запускает обычные команды "show interface status" и др и получает вывод этих команд в виде текстовой переменной Python и далее парсит.

Откуда получает список устройств - в данном случае я использую ansible hosts файл в формате yaml, и из этого файла беру группу устройств. поскольку у меня уже был этот файл со всеми устройствами и со многими группами. конечно можно сделать любой другой список

здесь есть пример https://habr.com/ru/articles/830558/

и где нужно запускать скрипт , чтоб опросить все подсети? это должен быть админ линукс бастион хост, откуда все менеджмент подсети должны быть доступны, откуда вы можете соединиться со всеми устройствами по SSH , у меня на линукс бастион хост уже был установлен ансибл и поэтому там же я стал запускать python netmiko. но если запускать только python netmiko без ансибл то возможно и из виндоус

дайте мне знать какие еще несколько cisco show комманд можно объединить в одну на группе устройств

в моем случае для мак адресов вывод use_textfsm=True оказался полезным, но не для CDP и не для "interface status"

выбор инструмента остаётся за вами.

python лучший выбор на мой взгляд. он универсален и прост. в то же время есть много готовых библиотек.

например если у вас будет CSV файл с мак адресами то на python есть готовая библиотека которая выдает вендора по мак адресу. в VBA такого нет.

для таких простых случаев спрашиваете chatgpt и он пишет программу на python, но возможно и на VBA тоже умеет

import os
from datetime import datetime

# Specify the output file path
output_file = "C_drive_files_info.txt"

# Open the output file in write mode
with open(output_file, "w") as f:
    # Walk through all the files and directories in C: drive
    for root, dirs, files in os.walk("C:\\"):
        for file in files:
            # Get full file path
            file_path = os.path.join(root, file)
            
            try:
                # Get file creation time
                creation_time = os.path.getctime(file_path)
                creation_time = datetime.fromtimestamp(creation_time).strftime('%Y-%m-%d %H:%M:%S')

                # Get file size
                file_size = os.path.getsize(file_path)

                # Write file information to the output file
                f.write(f"File: {file_path}\n")
                f.write(f"Creation Time: {creation_time}\n")
                f.write(f"Size: {file_size} bytes\n\n")
            
            except Exception as e:
                # If there's an error (e.g., permission error), log it
                f.write(f"Error processing file {file_path}: {str(e)}\n\n")

print("File information saved to", output_file)

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

у нас в одной компании был мониторинг. на аутсорсе. у вас нет гарантии что вы не встретите такое в своей жизни. они мониторили какие то устройства.

электрики проводили согласованные работы.

отключали несколько зданий и снова подключили.

здесь конечно многие люди рассмеются " Принтер и другие устройства должны быть в CMDB, с актуальной информацией "

В обычной ситуации зачем это делать?

есть много обычных ситуаций.

например электрики проводили согласованные работы.

отключали несколько зданий и снова подключили.

а мне нужно достоверно установить что состояние сети вернулось в исходное.

а значит все порты, все мак адреса, все CDP вернулись в исходное состояние.

можно конечно просмотреть сотню другую текстовых файлов и сравнить с предыдущими файлами.

в моем случае нотепад++ и плагин compare

и сразу цветные строки показывают разницу.

Принтер и другие устройства должны быть в CMDB, с актуальной информацией куда он подключен. ?

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

архитектура сети "правильная", с этим вопросов нет.

но при выполнении любых работ я лично раньше сохранял все текстовые файлы до и после.

например даже при заливке нового софта на свичи.

теперь я сохраняю все текстовые файлы плюс один файл до и после выполнения работ.

но сравниваю только один файл

я применяю textfsm для мак адресов

connection.send_command(comm3, use_textfsm=True)

обычная ситуация. вам звонят и говорят что принтер не работает. и хорошо если сообщат мак адрес принтера. вы начнете искать по мак адресу во всех свичах и не найдете если патч корд не подключен.

далее вы начнете искать в всех текстовых файлах мак адресов если у вас есть сохраненные.

но вам могут сообщить только имя принтера. придется искать по имени IP адрес, потом искать мак адрес если есть сохраненные файлы со всех свичей.

в моем случае вся информация в одном файле, что ускорит поиск

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

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

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

кстати если заплатить много денег, купить лицензии и сервера, потом настроить сервера Cisco Catalist Center, то можно будет обращаться к серверу по API а сервер будет обращаться к свичу по CLI и сервер будет конвертировать CLI выход в API

всегда есть много разных решений. я не против вашего решения. если у вас есть пример как запросить по SNMP и все выходные данные собрать в один файл. поделитесь.

" нормальный json или хотя бы xml "

json нужен когда данные передаются с сервера на сервер. например с бакенда на фронтенд.

В моем случае это не требуется. в моем случае мне нужна удобочитаемость. CSV файл открывается в Excel. JSON тоже открывется в Excel, но зачем?

Конфиги Cisco можно хранить очень многими способами. Но моя статья не об этом.

Information

Rating
Does not participate
Registered
Activity

Specialization

Network Engineer, DevOps
Senior