понедельник, 15 мая 2023 г.

Подсчет в Cisco ACI кол-ва пустых EPG

При автоматизации ACI, каждому EPG раздается пул сетей, из большого диапазона (например /16), и в итоге приходит момент когда диапазон /16 тоже кончается. Переписывать код API потребуется в  крайнем случае, если не удастся удалить пустые  EPG и освободить их сети, чтобы они вернулись в пул IPAM.

Чтобы понять сколько Endpoint в каждом EPG (в пустом 0), можно проверить в web интерфейсе APIC:


Но когда EPG большое количество, то проще запустить скрипт в CLI интерфейсе APIC:

Вывод количества Endpoint в каждом EPG в диапазоне, например: 10.156/16:

 moquery -c fvSubnet | grep subnet- | grep uni/ | grep  10.156. | awk -F "/" '{print "S " substr($4,5), system("moquery -c fvCEp | grep -v BA:31:22 | grep -c "substr($4,5))}' >  /tmp/endpoints


цифры (1,4,1,3) над "S" это кол-во endpoint в EPG (по названию, в след. строке), заодно вырезаем из подсчета паразитный мак (у меня такой хх:31:22), из-за  хоста в Promiscuous  mode, если такой есть в системе.

Избавиться в cli APIC от кода выполнения AWK (0 или 1, стоит в конце названия EPG) не удалось, поэтому добавляем нормализующий знак "S" (спереди) чтобы создать  дополнительную колонку (для exсel), после чего сдвигаем всю эту колонку вниз на одну строку позицию (строку), сортируем и удаляем все строки  с "S". Интересно, что код ошибки AWK "1" точно совпадает EPG в котором 0 endpoint, но лучше ориентироваться на первую колонку, хотя вторую колонку , с кодом ошибки AWK тоже можно использовать как показатель: код 1, означает 0 endpoint в EPG.


Чтобы  точно понять, что EPG "заброшены" и никому давно не нужны, то можно собрать и даты создания EPG.

 Вывод времени создания EPG:

 moquery -c fvSubnet | grep subnet- | grep uni/ | grep  10.156. | awk -F "/" '{print "SSSSS " substr($4,5), system("moquery -c fvSubnet | grep "substr($4,5)"/ -A3 | grep modTs")}' > /tmp/timecreation


Тут нормализующими символами будут "SSSSS", равные по кол-ву знаков  параметру modTs (время создания EPG). Аналогично сдвигаем дату создания на одну позицию вниз, сортируем по названию EPG и совмещаем в excel таблицы рядом, согласно столбцов с названиями EPG. проверям что совпадает от начала до конца. Затем выборочно проверяем, что всё совпадает в web интерфейсе APIC и самые старые, пустые EPG удаляем средствами автоматизации, чтобы вернуть IPAM освободившиеся сети. 

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



Комментариев нет:

Отправить комментарий