•  desabrochar luz

Alpino

Pine, Alpine linux baseado em OSTree

Escolhendo o que SO executado em seus servidores é uma questão de conveniência e familiaridade. Conveniência significa que você deseja algo que ofereça o mínimo de problemas possível, familiaridade significa que você prefere não para aprender coisas adicionais se não for necessário.

Meus servidores são animais de estimaçãoportanto, posso emitir alguns comandos manualmente de vez em quando e não exigir automação completa.

Depois de experimentar CoreOS por um ano mudei para o meu próprio simplificado distro baseado em alpino e ostree.

Metas

Esta versão do alpino segue dicas de vagão plano e projeto-atômico e deve ser instalado como um sistema de arquivos raiz somente leitura com atualizações acontecendo atomicamente, ou seja, elas são bem-sucedidas ou o sistema volta ao estado anterior. Para que isso seja possível, o sistema deve ter sempre pelo menos dois instantâneos da versão lançada do sistema de arquivos, disponível no armazenamento.

Alvos

Em quais ambientes o sistema será executado? Eu almejei OVZ e [KVM], mas em geral você pode dizer containers e máquinas virtuais com a principal diferença de que os contêineres não executam seu próprio kernel, em particular eles não têm um processo de inicialização, eles chamam diretamente no iniciar sistema (que, por exemplo, em umDockerfile seria definido peloCMD ouENTRYPOINT ), que é responsável por gerenciar a árvore de processos que manterá o contêiner em execução (assim como uma sessão normal, se o processo init morre, o contêiner é encerrado). Além disso, os contêineres não podem configurar botões do sistema e podem ter restrições adicionais de recursos.

Divisão do processo de construção

Como a imagem é construída?

Dependências

oprepare.sh script lida com dependências, a maioria das quais são pacotes para oferecer ferramentas CLI comuns comocoreutils, util-linux, binutils , utilitários para operar com dispositivos de bloco comoblkid, sfdisk, multipath-tools e sistemas de arquivos comxfsprogs ee2fsprogs . osquashfs-tools pacote é usado no final para compactar o sistema de arquivos raiz construído. UMAglib pacote de compatibilidade também é instalado por padrão porque alpine é baseado emmusl, o pacote de compatibilidade funciona fornecendo algumas bibliotecas construídas contra.

A árvore

Árvores de arquivos para VMs e contêineres são construídas com, respectivamentemake.sh emake_ovz.sh . Esta é uma descrição simplificada das etapas

Para contêineres, a sequência é a mesma, mas a configuração muda, porque com um sistema não inicializado a partir de um bootloader Ostree tem problemas para verificar o ambiente, temos que aplicar alguns soluções alternativas e configurar alguns dispositivos que geralmente são manipulados pelo initramfs Passo. É assim OVZ ou LXC os modelos são configurados.

Embalagem

Assim que tivermos nossa árvore de arquivos confirmados para ostreebuild.sh oubuild-update.sh cuida da produção do artefato que será distribuído. A diferença entre os scripts é que a versão de atualização começa a partir de um repositório ostree anterior, e tb produz um artefato delta que um sistema em execução pode aplicar em sua instância ostree para realizar atualizações. Esta é uma descrição simplificada das etapas de construção

A configuração das partições é aplicada com um fdisklayout.cfg arquivo que define os tamanhos das partições, temos uma partição para o rootfs (~430M ), a partição de inicialização (~40M ) e uma partição swap (~40M ) Com contêineres, basta ignorar a montagem da compilação anterior em um dispositivo de loop e apenas puxar o novo commit do ostree sobre o antigo (extraído) repositório do ostree.

Personalizações

O que estou agrupando nesta imagem (além dos pacotes instalados)?

O que costumava ser e não é mais

Instalação

Para instalar a imagem, você pode carregá-la para o provedor de hospedagem e instalar a partir do VNC, no caso de máquinas virtuais, mas eu costumo sequestrar uma instalação existente, porque sempre é possível, desde que testei o script de configuração contra a versão do a distribuição linux, geralmente eu uso debian-8 ou ubuntu-14, não testei outros desde que sempre os achei disponíveis. As etapas de configuração seguem

Conclusões

Eu fiz pinho 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 NAT servidores que tendem a oferecer recursos ultrabaixo, na verdade, eu tenho uma caixa funcionando com apenas64M de RAM e ainda ter todos os recursos de que preciso.

[1]sistema de arquivos raiz

Tags de postagem: