[ninux-dev] Notizie sul fronte automazione configurazioni
nemesis
nemesis at ninux.org
Sat Feb 20 20:40:33 UTC 2016
Ciao a tutti,
ultimamente avrete notato che sono un pò sparito. Sono molto
concentrato sul fronte automazione delle configurazioni (ma tipo
pesantemente).
Intanto vorrei fare una piccola introduzione (o vorrei rinfrescare la
memoria a chi ha già letto qualcosa in passato).
Non so se ricordate l'articolo:
"netjsonconfig: convert NetJSON to OpenWRT UCI"
http://nemesisdesign.net/blog/coding/netjsonconfig-convert-netjson-to-openwrt-uci/
Negli ultimi mesi ho implementato quello che spiegavo in
quell'articolo.
La libreria che converte NetJSON in UCI comincia a darmi delle
soddisfazioni,
sono riuscito a stabilizzare due feature che sono molto potenti:
* i template (concetto originato da OpenWISP Manager): permettono di
immagazzinare configurazioni ricorrenti
* variabili: a volte non è possibile templatizzare un pezzo di
configurazione perchè ci sono degli id/chiavi/indirizzi ip/ecc
che cambiano da apparato ad apparato; con questa feature è possibile
mettere nel template una variabile, eg: {{ eth0_ip }}
Sulla documentazione c'è una pagina che spiega abbastanza bene i
concetti di base:
http://netjsonconfig.openwisp.org/en/latest/general/basics.html
Dopodichè c'è l'applicazione web che fornisce una UI (al momento
piuttosto base) che utilizza netjsonconfig
dietro le quinte per validare e generare la configurazione. Ha anche
una funzionalità di anteprima della configurazione UCI
che permette di vedere il risultato prima di salvare le modifiche.
Quest'applicazione è un'app django che si chiama django-netjsonconfig,
l'ho progettata per inserirla in progetti django più grandi,
ma è utilizzabile anche in versione "standalone".
Il repo è https://github.com/openwisp/django-netjsonconfig
Tramite questa django app è possibile generare un tar.gz da mettere
manualmente nei router OpenWRT (via luci o sysupgrade),
oppure per chi preferisce automatizzare i task ripetitivi e noiosi c'è
un pacchettino per OpenWRT che lo fa al posto vostro:
https://github.com/openwisp/openwisp-config
C'è ancora molta strada da fare, sia per soddisfare tutte le necessità
che servono ad OpenWISP che quelle che servono a Ninux,
ma credo di essere sulla buona strada perchè quello che ho ora già
riesce a portare a casa i risultati che servono, nelle ultime
settimane l'ho dato in pasto ad un cliente early adopter per dargli una
feature che OpenWISP attuale non ha ed è rimasto
piuttosto soddisfatto.
Ma sto testando questi programmi anche in ninux (non eravamo na rete
sperimentale na volta?), con Michele Salerno stiamo
facendo un pò di esperimenti su Ninux Basilicata, quando avrò più
ciccia vi farò sapere i dettagli, al momento posso
dirvi che miriamo a raggiungere questi obiettivi:
* fare in modo che sia molto facile generare la configurazione di nuovi
router openwrt
molto probabilmente solo per fare routing a terra perchè sulle
maledette antenne ci teniamo il nostro amatissimo AirOS
* fare in modo che i router abbiano una VPN di management annunciata
sul protocollo di routing
(in modo che anche se il collegamento wireless non c'è si è in
ninux-matera lo stesso)
* gestire la configurazione del server openwisp/VPN tramite ansible, al
fine di facilitare gli aggiornamenti
ma anche rendere più facile replicare configurazioni simili su altre
isole, su questo siamo a buon punto :-)
con la scusa sto anche insegnando ansible e git a Michele
* usare OLSRd2 come protocollo al posto di OLSRd1, e questa è la cosa
più facile
Quando avremo queste cose scriverò della documentazione sul setup e
cercherò di pubblicare qualcosa in modo che altri possano
visionare, replicare e fare varianti o miglioramenti.
Nel mentre, se qualche ninuxer di qualche nuova isola che è in una
situazione simile a Michele (ovvero nuova isola in via di definizione
con pochi nodi)
vuole partecipare con gli stessi esperimenti ce lo faccia sapere.
Infine vorrei complimentarmi con Michele per la pazienza e l'impegno
che sta mettendo in Ninux, non è uno che dice "sì famo famo" e poi
sparisce.
L'unica piccola pecca che ha è che non se vole studià la documentazione
di ansible! :-) :-P
Nemesis
More information about the ninux-dev
mailing list