Python netmiko mikrotik
Устал пользоваться модулем paramiko, а netmiko не работал. попробовал использовать ansible , вроде работает.
Но уперся что бы запустить netmiko.
вот пост на github https://github.com/ktbyers/netmiko/issues/1016
# -*- coding: utf-8 -*-
import netmiko
from pprint import pprint
# выполнение одной комманды из списка commands=[,,,,]
def send_show_command(dev,commands):
with netmiko.ConnectHandler(**dev,default_enter="\n\r") as ssh:
# print ('prompt:',ssh.find_prompt())
result=ssh.send_command(commands)
return result
command = '/interface print brief'
show_command=send_show_command({'device_type':'cisco_ios','username':'root+ct80h','password':'root','verbose':True,'ip':'192.168.30.20'},command)
print(show_command)
P.S. после того как заработал модуль netmiko решил использовать api mikrotik , так как он на много быстрее выполняет: подключение,изменения конфигурации, сбор данных.
с версии 6.45.1 изменился процесс авторизации (pip install librouteros –upgrade)
# -*- coding: utf-8 -*-
from librouteros import connect
from pprint import pprint
api = connect(username='root',password='root',host='192.168.0.10')
cmd=('/interface/vlan/print')
result=api(cmd)
api.close()
pprint (result)
изменение параметров , если без переменных :
from librouteros import connect
api = connect(username='root',password='root',host='192.168.0.10')
result=api('/interface/bridge/port/set', comment='test', numbers='3') лучше по .id
print (result)
если использовать переменные :
from librouteros import connect
api = connect(username='root',password='root',host='192.168.0.10'
params={'vlan-id':vlan_id, 'interface':'ether1', 'name':'ether1.'+vlan_id, 'comment':'pppoe_vlan'}
result=api(cmd='/interface/vlan/add', **params)
P.S. оставлю пока здесь.
При подключении к mikrotik в eve-ng html5 есть проблема, что консоль однострочная, нужно логиться admin+ct80h.
Оставить комментарий