Sto lavorando a un prodotto hardware che contiene un sistema Linux incorporato. La maggior parte di ciò che eseguiamo su quel sistema è un insieme di codice Python che al momento ha il suo repository Git ed è controllato in versione come un normale progetto software indipendente.
Sono bloccato su come gestire e il controllo della versione stessa della configurazione del sistema operativo. Per caricare il sistema operativo su una macchina di nuova costruzione, abbiamo un file immagine master memorizzato dell'intero filesystem (un singolo file da ~ 4 GB di backup su un'unità di rete). Deve essere in quel formato da installare. Questo mi lascia senza controllo della versione su una varietà di cose importanti come:
- Versione installata del software Python.
- Versione di Debian e versione del kernel.
- Librerie di terze parti e driver hardware che sono stati installati.
- Importanti file di configurazione del sistema (sorgenti dell'albero dei dispositivi, rc.local, ecc.)
Mentre lavoro sul debug del mio hardware personalizzato, questo sta diventando particolarmente preoccupante perché sto curiosando e producendo file di configurazione senza controllo della versione.
Esiste un tipo di strumento per la gestione di una configurazione del sistema operativo come questa o almeno alcune best practice che posso implementare? Ho provato a esaminare gli strumenti di gestione della configurazione e tutto ciò che ho trovato è stato mirato più a un tipo di applicazione sysadmin IT per gestire flotte di computer in uso che non si adattano molto bene all'utilizzo dell'hardware incorporato. Mi sento come se stavo cercando la cosa sbagliata.