Gentoo Logo

Instalator Gentoo Linux

Spis treści:

1.  Wprowadzenie

Obecnie Gentoo nie posiada oficjalnego instalatora. Wielu użytkowników wyraziło zainteresowanie taką aplikacją, która ułatwiłaby obecny proces instalacji. Wielu nowych użytkowników Gentoo lub ogólnie Linuksa, uważa proces instalacji za odstraszający i nawet z silnym zapewnieniem pomocy oraz doskonałą dokumentacją nadal pozostają niechętnymi do wypróbowania Gentoo. Niektóre osoby oznajmiły, że jest to jedyny powód przez który jeszcze nie zainstalowały lub wypróbowały Gentoo. Obecny proces instalacji nadal będzie dostępny dla osób, które go wybiorą.

Projekt Instalatora Gentoo Linux zamierza stowrzyć normatywną platformę instalacyjną zarówno dla systemów serwerowych jak i biurkowych. Ogólnie celem instalatora jest spójność pomiędzy architekturami, użyteczność dla wszystkich użytkowników i elastyczność. Sekcja o funkcjonalności da lepsze pojęcie o szczegółach, ale wystarczy powiedzieć, że będzie dla wszystkich użytkowników, na wszystkich poziomach zaawansowania, dla wszystkich środowisk.

2.  Funkcjonalność

Dalej znajduje się lista funkcjonalności, które będzie posiadał instalator. Lista nie jest zbyt wyczerpująca, ale powinna dać lepsze pojęcie co będzie możliwe. Nie wszystkie wymienione funkcjonalności będą do wykorzystania przez wszystkich użytkowników, ale idea jest taka, aby zapewnić spójność dla wszystkich użytkowników i tym samym trzymać się mantry "jeśli nie dla mnie, to dla kogoś innego".

Liczne interfejsy końcowe

Instalator będzie posiadał wymienne interfejsy użytkownika a część spośród nich będzie pracowała w środowiku X. Ponieważ niektóre platformy są częściej instalowane z wykorzystaniem urządzeń, które nie współpracują ze środowiskiem X windows (instalacja z wykorzystaniem konsoli szeregowej Sun, itp), będą rozwijane także interfejsy tekstowe. Użytkownicy będą mogli rozwijać własne interfejsy (każdego rodzaju) według własnego upodobania, ale ze względów na wsparcie techniczne, na początku tylko jeden interfejs tekstowy i jeden graficzny może być oficjalnie wspierany.

Odnawialna struktura wewnętrzna

Rzeczywistą siłą napędową instalatora będzie zbiór API, które będą wywoływane z pożądanego klienta. Aby utrzymać czystą i pełną separację funkcjonalności i interfejsu użytkownika, zostanie ustanowiona ogólna platforma dla narzędzi, które będa chciały kontrolować proces instalacji systemu Gentoo. Przyczyni się to również do dużej spójności pomiędzy wszystkimi platformami i środowiskami.

Automatyczne wdrożenie

Instalator będzie wpierał automatyczne wdrożenie używając wcześniej skonfigurowanych profili instalacji. To pozwoli na łatwą instalację w większych środowiskach z podobnym sprzętem lub w sytuacjach kiedy pragnie się przechowywać kopię zapasową parametrów świeżej instalacji w celu szybkiego odzyskiwania maszyny w razie awarii.

Generacja profilu próbnego uruchomienia

Użytkownicy będa w stanie stworzyć profil instalacji przechodząc przez wszystkie kroki instalatora ale w rzeczywistości nie podejmując żadnych kroków. Wszystkie dane wygenerowane przez użytkownika będą zamienione na profil instalacji (reprezentowany jako dokument XML), który następnie będzie można wykorzystać do automatycznego wdrożenia.

Pełne wsparcie dla wszystkich architektur Gentoo

Warunkiem koniecznym dla projektu instalatora jest wsparcie dla wszystkich architektur wspieranych przez Gentoo. To oznacza wsparcie (ale nie tylko) dla x86, ppc, sparc, alpha, amd64, mips, hppa i itanium. (Jedynym wyjątkiem są urządzenia wbudowane. Jest to spowodowane bardzo wyspecjalizowanym środowiskiem, do którego instalator może się niedostosować.)

Wyspecjalizowane profile

Wyspecjalizowane profile, takie jak SELinux, będą wspierane na równi z tradycyjnymi (na podstawie procesora) architekturami. Wyspecjalizowane profile będą wspierały dodatkowe funkcjonalności i wymagania odpowiednich procesów instalacyjnych.

Użycie otwartych standardów i polityk

Wszędzie, gdzie będzie to możliwe, instalator będzie używał otwartych formatów i standardów aby dobrze współpracować z innymi narzędziami rozwijanymi przez użytkowników, tj formaty plików (XML), protokoły sieciowe, itp. Możliwości użycia alternatywnych narzędzi zostanie poświęcona specjalna uwaga.

Integracja z przyszłymi projektami konfiguratorów

Wszędzie, gdzie to możliwe, instalator będzie się integrował ze specyficznym dla Gentoo systemem narzędzi konfiguracyjnych, aby ułatwić konfiguację poinstalacyjną maszyn. Wsparcie dla narzędzi z poza Gentoo, tj cfengine może być również uwzględnione.

3.  Projekt i struktura

Struktura instalatora musi być na tyle ogólna aby wspierać wyżej wymienione funkcjonalności i jednocześnie nie spowodować aby proste zadania stały się trudnymi a obsługiwalność stała się skomplikowana.

Główne wymagania projektowe:

  • Liczne interfejsy użytkownika muszą być wspierane (wsparcie modelu abstrakcyjnego)
  • Zachowanie pełnej separacji modelu, widoku i logiki kontrolnej
  • Wszystkie funkcjonalności muszą być wspierane bez względu na rodzaj interfejsu użytkownika i architekturę
  • Możliwość automatycznego wdrożenia musi być zawsze dostępna

No i w końcu, platforma instalacyjna (jak cały system jest nazwany) jest podzielona na trzy główne części.

Interfejs końcowy (Klient)

Klient jest interfejsem użytkownia do systemu. Zawiera całą logikę i wsparcie dla interfejsu użytkownika, a także, mniej ważne informacje o stanie tymczasowej konfiguracji klienta, w tym parametry podane w wierszu poleceń, zmienne środowiskowe, wywołania metod (interaktywne/nieinteraktywne), miejsca logowania, URI serwerów z pakietami binarnymi, i inne. Niektóre ustawienia pozostaną w procesie instalacji, ale większość z nich nie.

Użytkownik będzie mógł użyć pożądanego interfejsu końcowego w celu wygenerowania profilu instalacji, który będzie wykorzystany w późniejszym wdrożeniu i w tym aspekcie może być też uważany za narzędzie do generowania profilu.

W późniejszym czasie możliwa jest również integracja klienta z systemowymi narzędziami konfiguracyjnymi.

Generalnie klient jest "głupi" i nieświadomy implementacji logiki aktualnego procesu instalacji, chociaż logika niektórych architektur będzie obecna.

Element przetwarzający (API lub struktura wewnętrzna)

Daniem głównym instalatora jest zbiór obiektowo zorientowanych API, które wydobywają właściwe polecenia wykonywane w celu instalacji systemu. Struktura wewnętrzna jest czymś abstrakcyjnym i dlatego jej zachowanie zależy od użytego szablonu architektury. Liczba wykonanych kroków w dużej mierze zależy od wymagań i implementacji szablonu architektury (pliku XML, który jest podobny do informacji dostarczanych przez /etc/make.profile).

Ponieważ struktura wewnętrzna jest oddzielona od klienta może zostać użyta przez zróżnicowane produkty instalacyjne rozwijane przez użytkowników. Główne klasy są następujące:

  • Klasa kontrolująca, która dyktuje, na podstawie szablonów architektury (pliku XML), jakie kroki wykonywać w jakiej kolejności. Ta klasa jest rdzeniem calej logiki.
  • Klasa profilu instalacji utrzymująca wszystkie informacje o instalacji, takie jak schemat podziału na partycje, flagi kompilatora, flagi use i inne tego typu dane. Klasa będzie mogła serializować się do pliku XML, który będzie mógł być umieszczony na serwerze automatycznego wdrożenia i być wykorzystany w późniejszym czasie.

Inne, mniej ważne klasy będą mogły być wykorzystane do pośredniczącego wsparcia, ale te dwie klasy scalają to co ma być uznawane za publiczne dla deweloperów klientów.

Serwer wdrożeniowy

Trzeci komponent prawdopodobnie zainteresuje tylko tych, którzy korzystają z funkcji automatycznego wdrożenia. W rzeczywistości serwer wdrożeniowy jest tylko kobinacją usług i plików.

Profile instalacyjne mogą być przechowywane na komputerze i serwowane za pomocą serwera rsync. Klient (a dokładniej element przetwarzający) jak tylko dostanie URI serwera rsync pobierze wszystkie dostępne profile. Tak to wygląda z jednej strony.

Na serwerze wdrożeniowym mogą również działać usługi tftp i dhcp aby ułatwić bootowanie przez sieć dla dużych instalacji. To zazwyczaj pociąga za sobą wymóg wsparcia bootowania przez sieć również na maszynach klienckich, ale do tego mogą posłużyć specjalnie dostosowane płyty liveCD z Gentoo.

W skrócie, serwer wdrożeniowy nie jest specyficznym demonem czy usługą, ale kombinacją ogólnie dostępnych i standardowych usług. Pomysł polega na tym, aby wykorzystać usługi, które mogły już wcześniej działać w sieci użytkownika.

4.  Proces

Faktyczny proces, tzn jakie kroki należy przeprowadzić, w jakiej kolejności i jak, jest określony przez szablony architektur. W znacznej większości szablon architektury będzie się pokrywał z krokami opisanymi w Podręczniku Gentoo.

Specjalne szablony architektury, jak np wcześniej wspomniany SELinux mogą używać tego samego mechanizmu do zmiany standardowego procesu instalacji. Schemat dla architektury będzie zmieniał domyślne zachowanie podane w schemacie podstawowym. Dzęki temu, każdy szablon architektury nie będzie musiał specyfikować rzeczy takich jak synchronizacja drzewa portage, emergowanie systemu czy innych podobnych kroków, które występują we wszystkich architekturach.

5.  Kontakt

Deweloperzy pracujący nad Instalatorem Gentoo gromadzą się w dwóch miejscach. Kanał IRC #gentoo-installer (w sieci Freenode) jest głównym forum dyskusyjnym, gdzie wiele kwestii jest rozstrzyganych na bieżąco. Na bardziej ogólne dyskusje przeznaczona jest lista dyskusyjna. Można się na nią zapisać wysyłając email na adres gentoo-installer-subscribe@lists.gentoo.org.

6.  Autorzy i współpracownicy

Wszystkie informacje i pomysły przekazane w tym dokumencie zostały wyłuskane z wielu rozmów prowadzonych w wielu różnych miejscach.

Na kanale #gentoo-installer blackace, dams, esammer, iggy, karltk, klieber, Method, pauldv, port001, Ramereth, Rupart, spyerdous, npmmcullum i tseng. Inne osoby również pomogły ale aktualnie, podczas pisania tego szkicu projektu, są nieaktywni na kanale.

Lista dyskusyjna desktop-research była miejscem, w którym ten projekt powstał jako oficjalny projekt Gentoo w obecnym składzie. Podziękowania również dla osób z tej listy.

Kanał #gentoo-server był pomocny w zbieraniu zaleceń i informacji o automatycznym wdrożeniu. Podziękowania również dla nich.

Ten dokument odwołuje się do wielu rozmów i pomysłów i jest pracą zbiorową społeczności Gentoo.



Drukuj

Zaktualizowano 29 January 2004

Podsumowanie: Wprowadzenie do projektu Instalatora Gentoo Linux omawiające jego cel, strukturę i uczestników.

Eric Sammer
Autor

Blackace
Redaktor

Piotr Chmyłkowski
Tłumaczenie

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.