•  untoreh-light

alpino

Pine, linux alpino basado en OSTree

Elegir que SO se ejecuta en sus servidores es una cuestión de conveniencia y familiaridad. La conveniencia significa que desea algo que le cause la menor cantidad de problemas posible, la familiaridad significa que preferiría no para aprender cosas adicionales si no es necesario.

Mis servidores son mascotas así que estoy bien emitiendo manualmente algunos comandos de vez en cuando, y no requiero una automatización completa.

Después de probar CoreOS durante un año cambié a mi propio simplificado distro basado en alpino y ostree.

Metas

Esta versión de alpine se inspira en vagón y proyecto-atómico y se supone que debe instalarse como un sistema de archivos raíz de solo lectura con actualizaciones que se realizan de forma atómica, es decir, tienen éxito o el sistema vuelve al estado anterior. Para que esto sea posible, el sistema debe tener siempre al menos dos instantáneas de la versión del sistema de archivos publicada, disponible en almacenamiento.

Objetivos

¿En qué entornos funcionará el sistema? Yo apunté OVZ y [KVM], pero en general puedes decir contenedores y maquinas virtuales con la principal diferencia de que los contenedores no ejecutan su propio kernel, en particular no tienen un proceso de arranque, llaman directamente al en eso sistema (que por ejemplo en unDockerfile estaría definido por elCMD oENTRYPOINT sentencias), que es responsable de administrar el árbol de procesos que mantendrá el contenedor en ejecución (al igual que una sesión normal, si el proceso init muere, el contenedor termina). Además, los contenedores no pueden configurar las perillas del sistema y pueden tener restricciones adicionales en las capacidades.

Bisecar el proceso de construcción

¿Cómo se construye la imagen?

Dependencias

losprepare.sh script maneja dependencias, la mayoría de las cuales son paquetes para ofrecer herramientas cli comunes comocoreutils, util-linux, binutils , utilidades para operar con dispositivos de bloque comoblkid, sfdisk, multipath-tools y sistemas de archivos conxfsprogs ye2fsprogs . lossquashfs-tools El paquete se utiliza al final para comprimir el sistema de archivos raíz construido. Aglib El paquete de compatibilidad también se instala de forma predeterminada porque alpine se basa enmusl , el paquete de compatibilidad funciona proporcionando algunas bibliotecas construidas contra.

El árbol

Los árboles de archivos para VM y contenedores se compilan respectivamente conmake.sh ymake_ovz.sh . Esta es una descripción simplificada de los pasos

Para los contenedores, la secuencia es la misma, pero la configuración cambia, porque con un sistema no arrancado desde un cargador de arranque ostree tiene problemas para verificar el entorno, tenemos que aplicar algunos soluciones alternativas y configurar algunos dispositivos que generalmente son manejados por el initramfs paso. Así es como OVZ o LXC las plantillas están configuradas.

embalaje

Una vez que tenemos nuestro árbol de archivos confirmados de ostreebuild.sh obuild-update.sh se encarga de producir el artefacto que se distribuirá. La diferencia entre los scripts es que la versión de actualización comienza desde un repositorio de ostree anterior, y además produce un artefacto delta que un sistema en ejecución puede aplicar en su instancia de ostree para realizar actualizaciones. Esta es una descripción simplificada de los pasos de compilación

La configuración de las particiones se aplica con un fdisklayout.cfg archivo que define los tamaños de las particiones, tenemos una partición para rootfs (~430M ), la partición de arranque (~40M ) y una partición de intercambio (~40M ). Con contenedores, simplemente omita el montaje de la compilación anterior sobre un dispositivo de bucle, y simplemente extraiga la nueva confirmación de ostree sobre el antiguo repositorio de ostree (extraído).

Personalizaciones

¿Qué estoy empaquetando en esta imagen (aparte de los paquetes instalados)?

Lo que solía ser y lo que ya no es

Instalación

Para instalar la imagen, puede cargarla en el proveedor de alojamiento e instalarla desde VNC, en el caso de máquinas virtuales, pero generalmente secuestro una instalación existente, porque siempre es posible, siempre que haya probado el script de configuración con la versión de la distribución de Linux, generalmente uso debian-8 o ubuntu-14, no he probado otras, ya que siempre las he encontrado disponibles. Los pasos de configuración son los siguientes

Conclusiones

hice 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 servidores que tienden a ofrecer recursos ultra bajos, en realidad tengo una caja que se ejecuta con solo64M de RAM, y todavía tengo todas las funciones que necesito.

[1]sistema de archivos raíz

Etiquetas de publicación: