Configurare gli switch con SQL

Può capitare di dover configurare una serie di switch con descrizioni e vLAN partendo da un documento strutturato (foglio elettronico o altro) fornito da chi ha steso i cavi.

L’idea è di generare lo script di configurazione degli switch partendo dai dati strutturati e facendo il meno lavoro ripetitivo possibile.

I dati strutturati forniti devono contenere come minimo l’indicazione dello switch (o stack) a cui fanno riferimento i dati, la porta dello switch/stack e una serie di informazioni descrittive del cavo che permettono, se richiesto, di assegnare la configurazione delle vLAN.

I comandi che seguono si applicano al linguaggio ArubaOS,ma è facilissimo convertirli in altri linguaggi.

Innanzi tutto serve una tabella che da un campo della tabella principale crei il comando apposito per la definizione delle vLAN e di altre configurazioni specifiche:

CREATE TABLE vlan(
sys varchar(5) NOT NULL,
vlan varchar(250) NOT NULL,
PRIMARY KEY (sys)
)

Questa tabella verrà raccordata in master/detail attraverso il campo sys per definire il comando di assegnazione delle vLAN. Il campo vlan deve contenere l’intero comandi di assegnazione della vLAN e di altre caratteristiche specifiche.

La tabella principale, cavi, avrà vari campi, tra cui sys, che dipendono dai dati forniti da chi ha steso i cavi.

La query risultante per la creazione dello script sarà

SELECT CONCAT("int ",
cavi.portaswitch,
'|',
'name {',
cavi.presa,
" ",
trim(cavi.descrizione),
" - ",
cavi.posizione,
'{|',
vlan.vlan)
FROM cavi
JOIN vlan ON cavi.sys=vlan.sys
WHERE cavi.switch='nomedelloswitch'
ORDER BY cavi.switch,cavi.portaswitch

Anziché far generare apici e a-capo da SQL ho preferito usare caratteri jolly e poi fare la sostituzione in un editor così posso verificare l’output più comodamente.

Una riga tipica generata dalla query è

int 1 | name {A1 Ingresso uffici - Pannello 1 porta 1{|untag vlan 10

Dove in rosso sono indicati campi variabili.

Una volta generato il file e verificato un trova/cambia del pipe con l’a-capo e della parentesi graffa con i dopi apici completerà la generazione dello script, a quel punto un copia e incolla completerà la configurazione.

wr mem

Autore: Luigi Rosa

Consulente IT, sviluppatore, SysAdmin, cazzaro, e, ovviamente, geek.

Spazio per un commento

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.