•  niereh-światło

Alpejski

Sosna, alpejski linux oparty na OSTree

Wybór czego OS działa na twoich serwerach to kwestia wygody i znajomości. Wygoda oznacza, że ​​chcesz czegoś, co sprawia Ci jak najmniej kłopotów, znajomość oznacza, że ​​wolisz nie nauczyć się dodatkowych rzeczy, jeśli nie musisz.

Moje serwery są zwierzęta domowewięc jestem w porządku, ręcznie wydając kilka poleceń raz na jakiś czas i nie wymagam pełnej automatyzacji.

Po wypróbowaniu CoreOS na rok przerzuciłem się na własne uproszczone dystrybucja na bazie alpejskiej i Ostree.

Cele

Ta wersja alpejskiej czerpie wskazówki z platforma oraz projekt-atomowy i ma być zainstalowany jako główny system plików tylko do odczytu z aktualizacjami zachodzącymi niepodzielnie, to znaczy, że albo się powiedzie, albo system wraca do poprzedniego stanu. Aby było to możliwe, system musi zawsze mieć co najmniej dwie migawki wydanej wersji systemu plików, dostępnej w magazynie.

Cele

W jakich środowiskach będzie działał system? celowałem OVZ i [KVM], ale ogólnie można powiedzieć pojemniki oraz wirtualne maszyny główną różnicą jest to, że kontenery nie uruchamiają własnego jądra, w szczególności nie mają procesu rozruchu, wywołują bezpośrednio do w tym system (który na przykład w aDockerfile byłaby zdefiniowana przezCMD lubENTRYPOINT instrukcji), który jest odpowiedzialny za zarządzanie drzewem procesów, które podtrzymują działanie kontenera (podobnie jak normalna sesja, jeśli proces inicjacji zginie, kontener się zakończy). Ponadto kontenery nie mogą konfigurować pokręteł systemowych i mogą mieć dodatkowe ograniczenia możliwości.

Przecięcie procesu kompilacji

Jak budowany jest wizerunek?

Zależności

tenprepare.sh skrypt obsługuje zależności, z których większość to pakiety oferujące popularne narzędzia CLI, takie jakcoreutils, util-linux, binutils , narzędzia do pracy z urządzeniami blokowymi, takimi jakblkid, sfdisk, multipath-tools i systemy plików zxfsprogs oraze2fsprogs . tensquashfs-tools pakiet jest używany na końcu do skompresowania wbudowanego głównego systemu plików. Aglib pakiet kompatybilności jest również instalowany domyślnie, ponieważ alpine jest oparty namusl, pakiet kompatybilności działa poprzez dostarczenie kilku bibliotek zbudowanych przeciwko .

Drzewo

Drzewa plików dla maszyn wirtualnych i kontenerów są budowane odpowiednio zmake.sh orazmake_ovz.sh . To jest uproszczony opis kroków

W przypadku kontenerów kolejność jest taka sama, ale konfiguracja zmienia się, ponieważ system nie jest uruchamiany z program rozruchowy ostree ma problemy z weryfikacją środowiska, musimy zastosować trochę obejścia i skonfiguruj niektóre urządzenia, które są zwykle obsługiwane przez initramfs krok. Oto jak OVZ lub LXC szablony są skonfigurowane.

Opakowania

Kiedy już mamy drzewo plików zatwierdzonych przez ostreebuild.sh lubbuild-update.sh zajmuje się produkcją artefaktu, który będzie dystrybuowany. Różnica między skryptami polega na tym, że wersja aktualizacji zaczyna się od poprzedniego repozytorium ostree, a także tworzy artefakt delta, który działający system może zastosować na swojej instancji ostree w celu wykonania aktualizacji. To jest uproszczony opis kroków budowania

Konfiguracja partycji jest stosowana za pomocą fdisklayout.cfg plik definiujący rozmiary partycji, mamy jedną partycję dla rootfs (~430M ), partycja rozruchowa (~40M ) i partycję wymiany (~40M ). Z kontenerami, w których wystarczy pominąć montowanie poprzedniej wersji nad urządzeniem pętlowym i po prostu przeciągnąć nowe zatwierdzenie ostree na stare (wydobyte) repozytorium ostree.

Modyfikacje

Co dołączam do tego obrazu (oprócz zainstalowanych pakietów)?

Co było, a czego już nie ma

Instalacja

Aby zainstalować obraz, możesz albo przesłać go do dostawcy hostingu i zainstalować z VNC, w przypadku maszyn wirtualnych, ale zwykle przechwytuję istniejącą instalację, ponieważ zawsze jest to możliwe, a także od dawna testowałem skrypt instalacyjny z wersją dystrybucja linuksa, zazwyczaj używam debian-8 lub ubuntu-14, nie testowałem innych, ponieważ zawsze uważałem, że są one dostępne. Kroki konfiguracji są następujące

Wnioski

zrobiłem sosna 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 serwery, które oferują bardzo niskie zasoby, w rzeczywistości mam uruchomione pudełko z zaledwie64M pamięci RAM i nadal posiadam wszystkie potrzebne funkcje.

[1]główny system plików

Tagi postów: