Python netmiko mikrotik

менее 1 мин на чтение

Устал пользоваться модулем 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.

Метки: , , , ,

Разделы:

Дата изменения:

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