Iacopo Masi ha scritto:
Salve a tutti,
sono Iacopo, uno studente che vorrebbe usare python, combinando le librerie pySNMP e pySSh (oppure paramiko), per poter sviluppare un applicazione in grado di gestire un apparecchio generico che esponga un agent SNMPv3 e un server OpenSSh in azione. Ad esempio una qualsiasi macchina Gnu/linux con suddetti demoni.

Ciao Iacopo.

Supponendo che la rete da gestire sia di dimensioni abbastanza grosse, si vuol creare questa applicazione grafica in maniera tale da non andare su ogni singolo host tramite ssh a modificare ad esempio il firewall con il tool iptables; questo ovviamente per ragioni di scalabilità della rete. Quindi Vogliamo che questa applicazioni ci semplifichi il lavoro, esponendo un accattivante interfaccia grafica (invece della linea di comando) che però "sotto il cofano" lavori nel solito modo in cui si lavora da terminale con ssh. Ecco perchè avevo optato di usare le librerie che interfacciano python e ssh.

 Esempio: Se si vuole attuare:
ssh [EMAIL PROTECTED]
pass:****
$iptables -L
$output di iptables.

Si dovrebbe avere una popup che permetta di inserire username e password,
e un eventuale menu con Firewall>>Lista Regola. Se l'utente clicca si formatta la stringa "iptables -L" mappata su quella funzione del menu e tramite le librerie ssh di python si invia la richiesta e si visualizza la risposta in un frame.

Questo ovviamente è un esempio ma dovrebbe essere estendibile anche a tutti i comandi presenti su Linux che accettano argomenti.

La domanda finale è quindi:
E' sensato tramite pySSh o paramiko programmare un client python affinché esegua i comandi da ssh con i relativi argomenti ( vedi -L in quel caso) e poi faccia vedere il risultato da interfaccia grafica? e oltre essere sensato, è fattibile o è una soluzione non pratica?


Si a tutte le domande.
Ma non è la soluzione più furba.

La soluzione più furba è cercare di scrivere il meno software possibile.

Quindi prendi un programma (ad esempio un applicazione web) che fa quello che vuoi -- ad esempio una interfaccia web ad iptables, phpadmin, o altro -- ed implementa un proxy che riceve una richiesta da un client e la forwarda agli N server.

Ci sono alcuni aspetti da gestire con un pò di attenzione (ad esempio che fare se n su N dei server ritorna un errore), ma ti evita di dover scrivere da zero una applicazione non banale.

Inoltre un proxy del genere dovrebbe essere facilmente riutilizzabile per applicazioni web generiche.


Per il resto le librerie pySnmp si dovrebbero interfacciare benissimo con Net-Snmp, l'agent di Linux. Non ci dovrebbero essere problemi.




Saluti  Manlio Perillo
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a