Python Script: HP Switch

Ternyata skrip python yang biasa saya gunakan untuk mengambil konfigurasi perangkat Cisco tidak bisa digunakan untuk HP Switch (model ProCurve maupun Aruba). Setelah googling sana sini akhirnya bikin skrip baru memakai pexpect. HP Switch yang digunakan untuk percobaan adalah model HP J9780A 2530-8-PoEP.

Modul yang dibutuhkan untuk skrip ini.

#!/usr/bin/env python3
import pexpect
import sys

Parameter yang digunakan.

HOST = "10.0.0.1"
USER = "admin"
PASS = "admin"

Pertama pexpect akan melakukan telnet ke perangkat.

t = pexpect.spawn('telnet {}'.format(HOST))

Perangkat akan menanyakan username untuk login

# username
t.expect('Username:')
t.sendline(USER)

…dan password.

# password
t.expect('Password:')
t.sendline(PASS)

Sampai sini kita akan mengambil hostname dari perangkat.

# get hostname
t.expect('#')
NAME = str(t.before.decode().split(' ')[-1])
print(NAME+'\r\n')
PROMPT = str(NAME+'#')

Mari kita nonaktifkan paging mode supaya tidak perlu menekan spacebar.

# no pagination
t.sendline('no page')
t.expect(PROMPT)

Dan akhirnya kita akan mengambil sh ver dan sh run dari perangkat.

# show version
t.sendline('sh ver')
t.expect(PROMPT)
print(t.before.decode())

# show configuration
t.sendline('sh run')
t.expect(PROMPT)
print(t.before.decode())