Network Automation menggunakan Python – Netmiko

Network Automation Python

Tools atau library lain yang digunakan untuk melakukan network automation di pyhton adalah Netmiko. Bisa dibilang, netmiko sangat lengkap dan mudah digunakan. Dalam artian netmiko sudah mendukung banyak perangkat seperti, Cisco, Mikrotik, Aruba, Juniper, Palo Alto dan masih banyak lagi.

Disisi lain, menurut penulis sintaks-sintaks dalam netmiko sangat mudah untuk dipahami dan lebih sederhana. Untuk source code dari netmiko sendiri dapat dilihat pada github. Berikut beberapa contoh sederhana network automation menggunakan netmiko.

Topologi GNS 3 untuk melakukan Network Automation

Contoh 1

from netmiko import ConnectHandler

router = {
    'device_type':'cisco_ios',
    'ip':'192.168.124.143',
    'username':'cisco',
    'password':'ciscopass',
    'secret':'enablepass'
}

conn = ConnectHandler(**router)

#user exec mode
print(conn.send_command('sh ip int b'))

#privilege exec mode
print(conn.enable())

#global config mode
cmd = [
        'interface loopback 1',
        'ip address 100.100.100.1 255.255.255.0',
        'no shutdown'
]
print(conn.send_config_set(cmd))

router : variabel untuk mendefinisikan detail tentang perangkat yang akan di-remote.
conn.send_command() : untuk memasukkan perintah dalam user exec mode (Cisco)
conn.enable() : untuk masuk ke privilege exec mode (Cisco)
conn.send_config_set() : untuk memasukkan perintah dalam global configuration mode (Cisco)

Dalam global configuration mode, perintah dijadikan dalam satu list. Sehingga perintah tersebut akan dieksekusi secara berurutan secara langsung.

Contoh 2

from netmiko import ConnectHandler

router = {
    'device_type':'cisco_ios',
    'ip':'192.168.124.144',
    'username':'cisco',
    'password':'ciscopass',
    'secret':'enablepass',
    'port':2222
}

conn = ConnectHandler(**router)

#user exec mode
print(conn.send_command('sh ip int b'))

#privilege exec mode
print(conn.enable())

#global config mode
cmd = [
        'interface loopback 1',
        'ip address 100.100.100.1 255.255.255.0',
        'no shutdown'
]
print(conn.send_config_set(cmd))

Pada contoh kedua ini, secara keseluruhan source code hampir sama. Hanya saja untuk port ssh di cisco diubah menjadi port 2222. Jadi definisi port ditambahkan pada variabel router.

Untuk merubah port ssh di cisco:

$ ip access-list extended changessh
	$ deny tcp any any eq 22
	$ permit ip any any
	$ ip ssh port 2222 rotary 1

$ line vty 0 15
	$ access-class changessh in

Untuk mengetahui secara detail bagaimana menggunakan netmiko, pembaca dapat melihat dokumentasi atau source code nya di GitHub.


LANJUTKAN BACA MATERI LENGKAP


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.