•  untoreh-light

Alpint

Pine, Alpine linux baserat på OSTree

Att välja vad OS körs på dina servrar är en fråga om bekvämlighet och förtrogenhet. Bekvämlighet betyder att du vill ha något som ger dig så mindre problem som möjligt, förtrogenhet betyder att du föredrar det inte att lära sig ytterligare saker om du inte behöver.

Mina servrar är sällskapsdjurså jag mår bra manuellt med några kommandon då och då och kräver ingen fullständig automatisering.

Efter att ha provat CoreOS under ett år bytte jag till min egen förenklade distro baserat på alpint och ostree.

Mål

Denna version av alpin tar ledtrådar från flakbil och projekt-atom och är tänkt att installeras som ett skrivskyddat rotfilsystem med uppdateringar som sker atomiskt, det vill säga antingen lyckas de eller systemet byter tillbaka till föregående tillstånd. För att detta ska vara möjligt måste systemet alltid ha åtminstone två ögonblicksbilder av den släppta filsystemversionen, tillgänglig på lagring.

Mål

I vilka miljöer kommer systemet att köras? Jag riktade OVZ och [KVM], men i allmänhet kan man säga behållare och virtuella maskiner med den största skillnaden att behållare inte kör sin egen kärna, särskilt de inte har en startprocess, de ringer direkt till i det system (som till exempel i ettDockerfile det skulle definieras avCMD ellerENTRYPOINT uttalanden), som är ansvarig för att hantera trädet av processer som kommer att hålla behållaren igång (precis som en normal session, om init -processen dör, slutar behållaren). Behållare kan inte heller konfigurera systemknappar och kan ha ytterligare begränsningar för funktioner.

Halverar byggprocessen

Hur är bilden uppbyggd?

Beroenden

Deprepare.sh script hanterar beroenden, varav de flesta är paketen för att erbjuda vanliga cli -verktyg somcoreutils, util-linux, binutils , verktyg för att arbeta med blockenheter somblkid, sfdisk, multipath-tools och filsystem medxfsprogs oche2fsprogs . Desquashfs-tools paketet används i slutet för att komprimera det inbyggda rotfilsystemet. Aglib kompatibilitetspaketet är också installerat som standard eftersom alpine är baserat påmusl, kompatibilitetspaketet fungerar genom att tillhandahålla några bibliotek som är byggda mot.

Trädet

Filträd för både virtuella datorer och behållare byggs med respektivemake.sh ochmake_ovz.sh . Detta är en förenklad beskrivning av stegen

För behållare är sekvensen densamma, men konfigurationen ändras, eftersom ett system inte startas från en bootloader ostree har problem med att verifiera miljön, vi måste tillämpa några lösningar och konfigurera några enheter som vanligtvis hanteras av initramfs steg. Detta är hur OVZ eller LXC mallar är konfigurerade.

Förpackning

När vi har vår ostree engagerade filer trädbuild.sh ellerbuild-update.sh tar hand om att ta fram den artefakt som kommer att distribueras. Skillnaden mellan skripten är att uppdateringsversionen startar från ett tidigare ostree -arkiv och också producerar en delta -artefakt som ett körsystem kan använda på sin ostree -instans för att utföra uppgraderingar. Detta är en förenklad beskrivning av byggstegen

Partitionskonfigurationen tillämpas med en fdisklayout.cfg fil som definierar partitionsstorlekarna, har vi en partition för rootfs (~430M ), startpartitionen (~40M ) och en bytepartition (~40M ). Med behållare med bara hoppa över montering av den tidigare byggnaden över en loop -enhet, och dra bara den nya ostree -kommittén över det gamla (extraherade) ostree -förvaret.

Anpassningar

Vad buntar jag ihop i den här bilden (förutom installerade paket)?

Det som förr var och inte är längre

Installation

För att installera bilden kan du antingen ladda upp den till värdleverantören och installera från VNC, för virtuella datorer, men jag kapar vanligtvis en befintlig installation, eftersom det alltid är möjligt, så länge jag har testat installationsskriptet mot version av Linux-distributionen, vanligtvis använder jag debian-8 eller ubuntu-14, har inte testat andra eftersom jag alltid har funnit att dessa är tillgängliga. Installationsstegen följer

Slutsatser

jag gjorde tall 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 servrar som tenderar att erbjuda extremt låga resurser, faktiskt har jag en låda som körs med bara64M RAM -minne och har fortfarande alla funktioner jag behöver.

[1]rotfilsystem

Inläggstaggar: