Автоматизация ACL с использованием python - PullRequest
0 голосов
/ 16 июня 2020

У меня есть задача по развертыванию ACL-операторов в профессиональных устройствах. Я изучаю автоматизацию и хотел выполнить эту задачу, используя python (имеет некоторое представление о topi c). используя модуль «Netmiko».

итак, теперь мне нужно увеличить seqnumber и скопировать этот вывод (оператор acl) в соответствующий ACL

мое требование: «141 Permit ip host 2.2.2.2 host 3.3 .3.3 "

например: если я отправлю команду: sh ip access-lists vlan2_in | i 1.1.1.1

вывод: 140 разрешить ip host 2.2.2.2 host 1.1.1.1

output = "140 разрешить ip host 2.2.2.2 host 1.1.1.1"

если на выходе "1.1.1.1": ip_acl = output.replace («1.1.1.1», «3.3.3.3») print (ip_acl)

результат: «140 разрешить ip host 2.2.2.2 host 3.3.3.3»

таким образом я получил оператор acl с неповрежденным источником. Но на выходе «140» необходимо увеличить на «+1». Итак, в конечном итоге я должен получить вывод, как показано ниже:

"141 разрешить ip host 2.2.2.2 host 3.3.3.3"

Есть идеи, как я могу этого добиться? пожалуйста, дайте мне несколько предложений?

Спасибо и С уважением, Мадху

1 Ответ

0 голосов
/ 28 июля 2020

Вы можете проанализировать номер ACL из команды, используя концепцию нарезки, а затем увеличить его на 1. Чтобы увеличить его, вы должны преобразовать его в int (), а затем заменить его в команде.

output = "140 permit ip host 2.2.2.2 host 1.1.1.1"
ACL_NUMBER = output[:3]
if "1.1.1.1" in output:
    ip_acl = output.replace("1.1.1.1", "3.3.3.3")
    ip_acl = output.replace(ACL_NUMBER, str(int(ACL_NUMBER)+1))
print(ip_acl)
...