•  ontereh-licht

Alpine

Pine, Alpine linux gebaseerd op OSTree

Kiezen wat? OS draait op uw servers is een kwestie van gemak en vertrouwdheid. Gemak betekent dat je iets wilt waar je zo min mogelijk last van hebt, vertrouwdheid betekent dat je dat liever hebt niet om extra dingen te leren als dat niet nodig is.

Mijn servers zijn huisdierendus ik vind het oké om af en toe handmatig een paar commando's uit te geven en heb geen volledige automatisering nodig.

Na het uitproberen CoreOS voor een jaar ben ik overgestapt op mijn eigen vereenvoudigde distro gebaseerd op alpine en ostree.

doelen

Deze versie van Alpine is gebaseerd op: platte wagen en project-atomaire en wordt verondersteld te worden geïnstalleerd als een alleen-lezen rootbestandssysteem met updates die atomair plaatsvinden, dat wil zeggen, ze slagen of het systeem keert terug naar de vorige staat. Om dit mogelijk te maken moet het systeem altijd minimaal twee snapshots van de vrijgegeven versie van het bestandssysteem, beschikbaar op opslag.

doelen

In welke omgevingen zal het systeem draaien? ik heb getarget OVZ en [KVM], maar in het algemeen kun je zeggen containers en virtuele machines met het belangrijkste verschil dat containers niet hun eigen kernel draaien, in het bijzonder hebben ze geen opstartproces, ze roepen rechtstreeks in de in het systeem (dat bijvoorbeeld in eenDockerfile het zou worden gedefinieerd door deCMD ofENTRYPOINT statements), die verantwoordelijk is voor het beheer van de structuur van processen die de container draaiende houden (net als bij een normale sessie, als het init-proces sterft, wordt de container beëindigd). Ook containers kunnen geen systeemknoppen configureren en kunnen aanvullende beperkingen hebben op de mogelijkheden.

Het bouwproces in tweeën delen

Hoe is het beeld opgebouwd?

afhankelijkheden

Deprepare.sh script behandelt afhankelijkheden, waarvan de meeste de pakketten zijn die algemene cli-tools bieden, zoals:coreutils, util-linux, binutils , hulpprogramma's om te werken met blokapparaten zoalsblkid, sfdisk, multipath-tools en bestandssystemen metxfsprogs ene2fsprogs . Desquashfs-tools pakket wordt aan het einde gebruikt om het ingebouwde rootbestandssysteem te comprimeren. EENglib compatibiliteitspakket is ook standaard geïnstalleerd omdat alpine is gebaseerd op:musl, werkt het compatibiliteitspakket door een aantal bibliotheken te bieden die zijn gebouwd tegen .

De boom

Bestandsstructuren voor zowel VM's als containers zijn respectievelijk gebouwd metmake.sh enmake_ovz.sh . Dit is een vereenvoudigde beschrijving van de stappen

Voor containers is de volgorde hetzelfde, maar de configuratie verandert, omdat met een systeem dat niet is opgestart vanaf a bootloader ostree heeft problemen met het verifiëren van de omgeving, we moeten wat toepassen tijdelijke oplossingen en stel een aantal apparaten in die meestal worden afgehandeld door de initramfs stap. Dit is hoe OVZ of LXC sjablonen zijn geconfigureerd.

verpakking

Zodra we onze ostree-committed-bestandenstructuur hebbenbuild.sh ofbuild-update.sh zorgt voor de productie van het artefact dat wordt gedistribueerd. Het verschil tussen de scripts is dat de updateversie start vanaf een eerdere ostree-repository, en ook produceert een delta-artefact dat een draaiend systeem kan toepassen op zijn ostree-instantie om upgrades uit te voeren. Dit is een vereenvoudigde beschrijving van de bouwstappen

De partitieconfiguratie wordt toegepast met een fdisklayout.cfg bestand dat de partitiegroottes definieert, hebben we één partitie voor de rootfs (~430M ), de opstartpartitie (~40M ) en een swappartitie (~40M ). Met containers waarbij je gewoon de vorige build over een loop-apparaat kunt overslaan en gewoon de nieuwe ostree-commit over de oude (geëxtraheerde) ostree-repository kunt trekken.

Aanpassingen

Wat bundel ik in deze afbeelding (behalve geïnstalleerde pakketten)?

Wat was en niet meer is

Installatie

Om de afbeelding te installeren, kunt u deze uploaden naar de hostingprovider en installeren vanaf VNC, in het geval van virtuele machines, maar ik kap meestal een bestaande installatie, omdat het altijd mogelijk is, zolang ik het installatiescript heb getest tegen de versie van de linux-distributie, in het algemeen gebruik ik debian-8 of ubuntu-14, heb geen andere getest omdat ik deze altijd beschikbaar heb gevonden. De installatiestappen volgen:

conclusies

ik maakte pijnboom 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 servers die de neiging hebben om ultralage bronnen te bieden, eigenlijk heb ik een box met alleen64M van RAM, en heb nog steeds alle functies die ik nodig heb.

[1]root bestandssysteem

Berichttags: