•  untoreh-luce

Alpino

Pine, Linux alpino basato su OSTree

Scegliere cosa OS gira sui tuoi server è una questione di comodità e familiarità. Convenienza significa che vuoi qualcosa che ti dia meno problemi possibile, familiarità significa che preferiresti non per imparare cose aggiuntive se non è necessario.

I miei server sono animali domestici quindi sto bene impartendo manualmente alcuni comandi di tanto in tanto e non richiedo l'automazione completa.

Dopo aver provato Core OS per un anno sono passato alla mia semplificata distribuzione a base di alpino e ostree.

Obiettivi

Questa versione di alpine prende spunto da pianale e progetto-atomico e dovrebbe essere installato come un file system root di sola lettura con gli aggiornamenti che avvengono in modo atomico, ovvero, o hanno successo o il sistema torna allo stato precedente. Affinché questo sia possibile, il sistema deve sempre avere almeno due istantanee della versione del file system rilasciata, disponibile sullo storage.

obiettivi

In quali ambienti verrà eseguito il sistema? ho preso di mira OVZ e [KVM], ma in generale puoi dire contenitori e macchine virtuali con la differenza principale che i contenitori non eseguono il proprio kernel, in particolare non hanno un processo di avvio, chiamano direttamente nel dentro sistema (che per esempio in aDockerfile sarebbe definito daCMD oENTRYPOINT dichiarazioni), che è responsabile della gestione dell'albero dei processi che manterrà il contenitore in esecuzione (proprio come una normale sessione, se il processo init muore, il contenitore termina). Inoltre, i contenitori non possono configurare le manopole di sistema e possono avere restrizioni aggiuntive sulle funzionalità.

Bisecare il processo di costruzione

Come si costruisce l'immagine?

dipendenze

Ilprepare.sh lo script gestisce le dipendenze, la maggior parte delle quali sono i pacchetti per offrire strumenti cli comuni comecoreutils, util-linux, binutils , utility per operare con dispositivi a blocchi comeblkid, sfdisk, multipath-tools e file system conxfsprogs ee2fsprogs . Ilsquashfs-tools pacchetto viene utilizzato alla fine per comprimere il file system root costruito. UNglib anche il pacchetto di compatibilità è installato di default perché alpine è basato sumusl , il pacchetto di compatibilità funziona fornendo alcune librerie basate su .

L'albero

Gli alberi dei file sia per le VM che per i container sono costruiti rispettivamente conmake.sh emake_ovz.sh . Questa è una descrizione semplificata dei passaggi

Per i contenitori, la sequenza è la stessa, ma la configurazione cambia, perché con un sistema non avviato da a boot loader ostree ha problemi a verificare l'ambiente, dobbiamo applicarne un po' soluzioni alternative e configurare alcuni dispositivi che di solito sono gestiti dal initramfs fare un passo. Questo è come OVZ o LXC i modelli sono configurati.

Confezione

Una volta che abbiamo il nostro albero di file impegnati ostreebuild.sh obuild-update.sh si occupa di produrre il manufatto che verrà distribuito. La differenza tra gli script è che la versione di aggiornamento inizia da un repository ostree precedente e anche produce un artefatto delta che un sistema in esecuzione può applicare alla sua istanza ostree per eseguire gli aggiornamenti. Questa è una descrizione semplificata dei passaggi di compilazione

La configurazione delle partizioni viene applicata con un fdisklayout.cfg file che definisce le dimensioni delle partizioni, abbiamo una partizione per rootfs (~430M ), la partizione di avvio (~40M ) e una partizione di swap (~40M ). Con i contenitori salta semplicemente il montaggio della build precedente su un dispositivo loop e trascina semplicemente il nuovo commit ostree sul vecchio repository ostree (estratto).

Personalizzazioni

Cosa sto raggruppando in questa immagine (a parte i pacchetti installati)?

Quello che era e non è più

Installazione

Per installare l'immagine puoi caricarla sul provider di hosting e installarla da VNC, nel caso di macchine virtuali, ma di solito dirotto un'installazione esistente, perché è sempre possibile, e ho testato lo script di installazione rispetto alla versione di la distribuzione linux, generalmente uso debian-8 o ubuntu-14, non ne ho testati altri poiché questi li ho sempre trovati disponibili. La procedura di installazione segue

Conclusioni

ho fatto pino 5 years from time of writing and I am still using it, and I see no reasons to switch to anything else. Alpine as a linux distro is great, simple, and I have never experienced breakage. I can easily deploy on NATed server che tendono ad offrire risorse estremamente basse, in realtà ho una scatola in esecuzione con solo64M di RAM e ho ancora tutte le funzionalità di cui ho bisogno.

[1]file system radice

Tag degli articoli: