hi,
this is the blog article
of the project we are mentoring for this year:
https://blog.freifunk.net/2023/05/27/gsoc23-automation-tools-for-libremesh-firmware-build-and-monitoring/
I copy and paste the translations here and if there are not disagreeemnts,
I'll publish in our news on the website,
but we can speak about this on the next meeting that is soon, on 3th of 
June. 
https://libremesh.org/communication.html
If there are comments about the project I'm happy to hear, please send 
an email in mailinglist!
Hugs Cristina
_______________
Castigliano
Herramientas de automatización para la construcción del firmware 
LibreMesh y monitorización
Presentación
¡Hola a todos! Soy Samlo. Soy un webdev fullstack que vive en una zona 
rural de Italia y dedica parte de su tiempo a construir y mantener una 
red comunitaria autogestionada basada en LibreMesh 
https://antennine.noblogs.org/.
Para GSoC'23, estaré trabajando en la creación de un conjunto de 
playbooks y roles ansible para realizar tareas comunes de administración 
de red útiles para un equipo técnico de una red comunitaria basada en 
LibreMesh.
Esta primera entrada de blog pretende proporcionar detalles de los 
antecedentes necesarios para entender el proyecto y su implementación.
## Qué
Como se indica en 
https://libremesh.org/, LibreMesh es un marco modular 
para la creación de firmware basado en OpenWrt para nodos de malla 
inalámbricos.
Es una lista de paquetes (lime-packages) con soporte para varios 
protocolos mesh, para instalarlos y configurarlos correctamente, y 
ofrece al usuario final una interfaz web dedicada (lime-app).
Tiene soporte para potencialmente todos los dispositivos soportados por 
OpenWrt, y siguiendo la documentación encontrarás toda la información 
para construir el firmware y configurar los ficheros principales y 
empezar a usarlo.
También tiene una lista de configuraciones de red usadas por diferentes 
comunidades (network-profiles) que proporcionan información sobre cómo 
configurar el firmware (instalando los paquetes) y la red (por ejemplo, 
editando los ficheros principales de configuración), o ambos, para 
unirse a la comunidad mesh.
## Motivaciones
Libremesh es un conjunto de paquetes que pueden ser incluidos como feeds 
- a través de paquetes fuente o precompilados - en un sistema de build 
de OpenWrt y luego seleccionar los de tu elección, pero solo puedes 
sobreescribir las configuraciones por defecto de OpenWrt manualmente y 
respaldar los archivos de configuración producidos para cada build.
En este escenario, es necesario guardar configuraciones y formas de 
reproducir la misma imagen de firmware.
En lugar de empezar a escribir una lista de scripts bash para manejar 
las necesidades de nuestra comunidad, estoy interesado en explorar la 
posibilidad de utilizar una herramienta de gestión de configuración y 
automatización como Ansible 
https://docs.ansible.com.
Esto simplificaría las necesidades comunes, en particular
- automatizar la creación de grupos de dispositivos con configuraciones 
específicas, paquetes, versiones de libremesh y openwrt.
- crear firmware de prueba, experimentos de versionado
- compilar en localhost o en una máquina remota
- gestionar configuraciones (monitorización, vpn, certificados ssl) en 
el mismo sistema que también construye firmware
- automatizar la entrada de información sincronizable entre dispositivos 
de red y servidores
- compartir configuraciones en un conjunto significativo y reproducible 
para otros dentro y fuera de la red de la comunidad local.
## Un problema
Libremesh no mantiene un sistema para construir consistentemente para 
todos los dispositivos soportados o para parchear openwrt para 
satisfacer las necesidades de objetivos o dispositivos particulares.
Así que cada comunidad debe averiguar cómo construir firmware para los 
dispositivos que utiliza.
Una inspiración para esto vino del proyecto Gluon 
https://gluon.readthedocs.io/ que incluye un sistema para mantener un 
seguimiento de paquetes específicos para objetivos, subobjetivos y 
dispositivos openwrt.
## Entregables del proyecto
- Tener un conjunto ansible de playbooks y roles para construir 
firmwares openwrt
- Tener un conjunto ansible de playbooks y roles para construir 
firmwares libremesh
- Tener un rol ansible para construir firmwares libremesh dependiendo de 
la versión de libremesh, la versión de openwrt, los paquetes por defecto 
de libremesh, los paquetes específicos del objetivo o dispositivo 
libremesh, los paquetes de la comunidad libremesh, el conjunto de 
paquetes de la comunidad libremesh vinculados a una lista específica de 
dispositivos.
- Tener un conjunto ansible de playbooks y roles para configurar un 
sistema de monitorización/probación/alerta/visualizador métrico.
## Reflexiones finales
En este periodo de diseño y planos del proyecto, antes de empezar a 
codificar he pensado mucho en los casos de uso, quien podría querer 
usarlo, y simplificar las contribuciones para mantener actualizado el 
código en el futuro.
Espero publicar en 
https://galaxy.ansible.com/ dos colecciones de roles 
(openwrt y libremesh) y poner a disposición a través del repositorio git 
el conjunto de playbooks para utilizar los roles anteriores.
Os pondré al día en Julio.
/////////////////////////////////////////////////////////////
Italiano
Strumenti di automazione per la creazione del firmware LibreMesh e il 
monitoraggio dei nodi
Introduzione
Ciao a tutti! Sono Samlo. Sono un webdev fullstack che vive in una zona 
rurale in Italia e dedica parte del suo tempo a costruire e mantenere 
una rete comunitaria autogestita basata su LibreMesh 
https://antennine.noblogs.org/.
Per la GSoC'23, lavorerò alla creazione di un set di playbook e ruoli 
ansible per svolgere le comuni attività di amministrazione della rete 
utili per un team tecnico di una rete comunitaria basata su LibreMesh.
Questo primo post del blog intende fornire dettagli sul background 
necessario per comprendere il progetto e la sua implementazione.
## Cosa
Come si legge sul sito 
https://libremesh.org/, LibreMesh è un framework 
modulare per la creazione di firmware basati su OpenWrt per nodi mesh 
wireless.
È un elenco di pacchetti (lime-packages) con supporto per vari 
protocolli mesh, per installarli e configurarli correttamente, e offre 
all'utente finale un'interfaccia web dedicata (lime-app).
Ha il supporto potenzialmente per tutti i dispositivi supportati da 
OpenWrt, seguendo la documentazione si trovano tutte le informazioni per 
costruire il firmware e configurare i file principali e iniziare a usarlo.
Dispone inoltre di un elenco di configurazioni di rete utilizzate da 
diverse comunità (network-profiles) che forniscono informazioni su come 
configurare il firmware (installando i pacchetti) e la rete (ad esempio 
modificando i file di configurazione principali), o entrambi, per unirsi 
alla community mesh.
## Motivazioni
Libremesh è un insieme di pacchetti che si possono includere come feed - 
tramite sorgenti o pacchetti precompilati - in un sistema di 
compilazione di OpenWrt e quindi selezionare quelli di propria scelta, 
ma è possibile sovrascrivere le configurazioni predefinite di OpenWrt 
solo manualmente e fare il backup dei file di configurazione prodotti 
per ogni compilazione.
In questo scenario è necessario salvare le configurazioni e i modi per 
riprodurre la stessa immagine del firmware.
Invece di iniziare a scrivere una lista di script bash per gestire le 
esigenze della nostra comunità, sono interessato a esplorare la 
possibilità di utilizzare uno strumento di gestione e automazione della 
configurazione come Ansible 
https://docs.ansible.com.
Questo porterebbe a semplificare le esigenze comuni, in particolare:
- automatizzare la creazione di gruppi di dispositivi con specifiche 
configurazioni, pacchetti, versioni di libremesh e openwrt.
- creare firmware di prova, esperimenti di versionamento versionando gli 
esperimenti
- compilare su localhost o su una macchina remota
- gestire le configurazioni (monitoraggio, vpn, certificati ssl) nello 
stesso sistema che costruisce anche i firmware
- automatizzare l'inserimento di informazioni che possono essere 
sincronizzate tra dispositivi di rete e server
- condividere le configurazioni in un insieme significativo e 
riproducibile per altre persone all'interno e all'esterno della rete 
della comunità locale.
## Un problema
Libremesh non gestisce un sistema per costruire coerentemente per tutti 
i dispositivi supportati o per patchare openwrt per soddisfare le 
esigenze di particolari target o dispositivi.
Quindi ogni comunità dovrebbe capire come costruire i firmware per i 
dispositivi che utilizza.
Un'ispirazione per questo è venuta dal progetto Gluon 
https://gluon.readthedocs.io/ che include un sistema per mantenere 
tracce di pacchetti specifici relativi a target, sottotarget e 
dispositivi openwrt.
## Risultati del progetto
- Avere un insieme di playbook e ruoli ansible per costruire i firmware 
openwrt
- Disporre di un insieme di playbook e ruoli ansible per costruire i 
firmware libremesh
- Avere un ruolo ansible per costruire i firmware di libremesh a seconda 
della versione di libremesh, della versione di openwrt, dei pacchetti di 
default di libremesh, dei pacchetti specifici del target o del 
dispositivo di libremesh, dei pacchetti della comunità di libremesh, 
dell'insieme di pacchetti della comunità di libremesh collegati a un 
elenco specifico di dispositivi.
- Disporre di un insieme di playbook e ruoli ansible per impostare un 
sistema di monitoraggio/probing/allarme/visualizzazione metrica.
## Pensieri conclusivi
In questo periodo di progettazione , prima di iniziare la codifica ho 
pensato molto ai casi d'uso, a chi potrebbe volerlo usare e a 
semplificare i contributi per mantenere aggiornato il codice in futuro.
Non vedo l'ora di pubblicare su 
https://galaxy.ansible.com/ due raccolte 
di ruoli (openwrt e libremesh) e di rendere disponibile tramite 
repository git l'insieme dei playbook per utilizzare i ruoli di cui sopra.
Vi aggiornerò a luglio.