SUSE Studio. Zbuduj własną dystrybucję.

Zastanawialiście się kiedyś nad stworzeniem własnej dystrybucji Linuksa? Nie na skalę światową, ale np. na potrzeby własnej firmy? Dystrybucja Linuksa, która jest dokładnie spersonalizowana pod konkretne potrzeby, zawiera tylko konkretne oprogramowanie. Dodatkowo macie wpływ na jej rozwój. Brzmi jak cytat z baśni Andersena, ale to wszystko jest możliwe dzięki narzędziu SUSE Studio.

Panowie z SUSE wpadli pewnego wieczoru na taką myśl: “Co by się stało, gdybyśmy dali użytkownikom solidną podstawię w postaci naszych sprawdzonych rozwiązań oraz otwartych narzędzi, nasze repozytoria z wyborem poszczególnych paczek i możliwość składania z tego wszystkich dowolnych kompilacji?” Tak mniej więcej postało narzędzie SUSE Studio, które pozwala budować własne dystrybucje.

Jak to technicznie możliwe?

Zasadę działania budowania własnej dystrybucji dobrze obrazuje ten rysuneczek:

susestudio_Diagram1

Na sam początek wybieramy system podstawowy. Do wyboru mamy następujące pozycje:

    openSUSE 12.2;
    SUSE Linux Enterprise 11 SP2;
    SUSE Linux Enterprise 10 SP4.

Te systemy dzielą się na odpowiednie działy:

Just enough OS (JeOS) – ta opcja udostępnia tylko podstawowe pakiety, które są wymagane do uruchomienia systemu, nic więcej;

Server – jako podstawę dostajemy środowisko serwerowe, uruchamiane w trybie tekstowym, ale zawierające takie oprogramowanie jak np. webservery, aplikacje do baz danych, proxy itd;

GNOME desktop – dostajemy podstawowy system + środowisko graficzne GNOME;

KDE desktop – dostajemy podstawowy system + środowisko graficzne KDE;

SLES for VMware – edycja systemu, która jest specjalnie przygotowana pod zastosowania wirtualizacyjne.

Oczywiście nie wszystkie opcje są dostępne dla wszystkich odmian. Poniższa tabelka dokładnie prezentuje zależności:

Czerwony – brak;
Zielony – dostępne.

susestudio_43

Po wybraniu systemu bazowego przechodzimy do jego personalizacji. Pierwszy krok to wybór pakietów.

susestudio_3

Wszystko jest bardzo przejrzyście przedstawione. Istnieje nawet możliwość pojedynczego wybierania pakietów.

W kolejnych krokach dodajemy użytkowników, swoje skrypty… Zobaczycie sami jak to wygląda w praktyce.

Nasz pierwszy projekt

Uruchamiamy przeglądarkę i wchodzimy na tą witrynę.

Klikamy na przycisk Sing in or create an account.

susestudio_4

Istnieje kilka możliwości rejestracji. Możemy utworzyć tradycyjne konto Novell lub skorzystać z logowania przy użyciu innych tożsamości, takich jak np. Facebook lub Google.

susestudio_5

Dla mnie najwygodniejszą opcją jest logowanie przez Facebook. Przy wykonywaniu tej czynności pierwszy raz, system poprosi nas o uzupełnienie pewnych danych.

susestudio_1

Po zakończeniu tego procesu dostajemy do dyspozycji pełny pakiet narzędzi.

susestudio_6

Zabieramy się za budowanie naszego pierwszego projektu. Klikamy na przycisk Create new appliance...

susestudio_7

Pierwszy etap to wybranie systemu bazowego, lecz najpierw przyjmijmy pewne założenia.

    – komputer będzie użytkowany w sekretariacie;
    – powinien mieć pakiet biurowy;
    – powinien posiadać klienta poczty elektronicznej;
    – powinien posiadać przeglądarkę;
    – użytkownik wcześniej pracował na systemie Windows, więc powinien posiadać środowisko maksymalnie zbliżone do swojego poprzednika;
    – pracownik może dostawać załączniki w formie pdf, czyli potrzebna jest aplikacje do ich otwierania;
    – pracownik może przeglądać zdjęcia.

Z racji tego, że jest to newralgiczne środowisko, wybieramy solidną podstawę, czyli SUSE Linux Enterprise 11 SP2. Pracownik wcześniej korzystał z Windows, czyli najlepszym wyborem będzie tutaj środowisko graficzne KDE.

Wybieramy platformę. Komputer nie jest jakiś super nowy, więc interesuje nas architektura 32-bitowa. Nasz ekran powinien mniej więcej wyglądać tak:

susestudio_8

Na koniec podajemy nazwę kompilacji.

susestudio_9

Klikamy na przycisk Create appliance.

Po kilku sekundach system jest gotowy do personalizacji naszego systemu. Wybieramy na Software:

susestudio_10

Pojawią się nam wszystkie repozytoria oraz pakiety jakie mamy do wyboru:

susestudio_11

Pierwsze co, to dodamy pakiet biurowy LibreOffice. W wyszukiwarkę wpisujemy frazę libreoffice i po chwili pojawią się odpowiednie pakiety.

susestudio_12

Przycisk add służy do dodania pakietu. Gdy klikniemy na nazwę pakietu, w chmurce ukaże się więcej informacji:

susestudio_13

Ja do swojej kompilacji dodałem jeszcze Calc oraz Impress. Tutaj dwie ciekawostki. Pierwsza z nich to: jeżeli dany pakiet posiada zależności, to nie musimy ich ręcznie spełniać. Aplikacja zrobi to za nas. Druga informacje to taka, że na samej górze pokazywany jest rozmiar naszej kompilacji:

susestudio_14

Podane są dwie wartości. Ta po prawej/u góry pokazuje ile MB waży obraz, natomiast ta po lewej/na gole podaje ile system będzie zajmował miejsca na dysku po instalacji.

Przechodzimy ponownie do pakietów. Libreoffice mamy już z głowy, teraz wybieramy aplikacje do poczty elektronicznej. Dla odmiany wybierzmy evolution.

susestudio_15

Dodałem obsługę Exchange, na wypadek gdyby serwer Microsoftu pojawił się we firmie ;).

Jako przeglądarkę wybiorę Firefox.

susestudio_16

Pozostały zdjęcia i pliki PDF. Do pdf niech posłuży nam evience, zaś do zdjęć f-spot.

OK. Wszystkie potrzebne pakiety zostały dodane. Klikamy na Configuration.

susestudio_17

Pojawi się nam panel do personalizacji naszego systemu:

susestudio_18

Zakładka General

Wybieramy oczywiście jako język Polski i strefę czasową odpowiednią dla naszego kraju.

susestudio_19

Kolejny krok to konfiguracja sieci oraz firewalla. Zakładamy, że w naszej sieci działa serwer DHCP oraz mamy już postawiony firewall, zaznaczamy więc wszystko tak jak na screenie:

susestudio_20

Następny etap to tworzenie użytkowników. Już na tym poziomie możemy ustalić użytkowników, ich hasła oraz powłokę, z jakiej będą korzystać oraz ustalić katalog domowy.

susestudio_21

Zakładka Personalize

W tej zakładce możemy wybrać tło, jakie będzie pojawiało się w czasie ładowania systemu. Istnieje również możliwość dodania własnego zdjęcia.

susestudio_22

Zakładka Startup

Umożliwia nam skorygowanie pewnych ustawień uruchamiania systemu oraz napisania własnej licencji dla tworzonej przez nas dystrybucji :).

susestudio_23

Zakładka Server

Poprzez nią mamy możliwość wstępnej konfiguracji niektórych usług, jeżeli wybraliśmy oczywiście edycję serwera lub aplikacje serwerowe.

susestudio_24

Zakładka Desktop

Możemy tu wybrać, jak ma odbywać się logowanie. Dane są: autologowanie lub konieczność podawania danych do logowania.

Na tym etapie istnieje możliwość ustalenia, jakie aplikacje będą uruchamianie wraz ze startem systemu.

susestudio_25

Zakładka Apliance

Tutaj da się manipulować pewnym ustawieniami, z których będzie korzystać maszyna wirtualna.

susestudio_26

Zakładka Scripts

Na tym poziomie mamy możliwość wykonania pewnek akcji po zbudowaniu projektu lub w czasie uruchamiania systemu.

susestudio_27

Przyszła kolejna na Files.

susestudio_28

To okno umożliwia nam dodawanie własnych plików lub archiwów do kompilacji. Istnieje również opcja edycji ustawień wysłanych przez nas plików:

susestudio_29

Ostateczna kopilacjia

Wreszcie nadszedł ten upragniony moment. Doszliśmy do etapu, gdzie możemy wybudować nasz projekt:

susestudio_30

W polu wersja wpisujemy wersję naszego systemu. Jest to opcja poglądowa i nigdzie nie zostanie użyta w naszym systemie po jego instalacji. Dozwolone jest tylko używanie cyfr.

W default format wybieramy w jakim formacie ma zostać stworzony projekt. Możemy stworzyć normalny obraz ISO lub przygotować specjalny plik, który będzie można bezpośrednio podpiąć pod wirtualna maszynę albo, co ciekawe, wysłać do chmury i tam uruchomić nasz system.

susestudio_31

Osobiście wybrałem ISO.

Po kliknięciu na Configuration, które znajduje się pod formatami projektu, zostaną wyświetlone szczegółowe informacje na temat naszej kompilacji.

susestudio_32

Jeżeli wszystko się zgadza, to nie pozostaje nam nic innego, jak kliknąć na przycisk Build. Rozpocznie się budowanie naszej pierwszej dystrybucji.

susestudio_33

Proces budowania odbywa się na maszynach Novella. W zależności od wybranych pakietów proces ten może trwać od kilku minut do nawet kilku godzin. Nawet jeśli wylogujemy się z naszego konta, projekt będzie nadal budowany.

Gotowy projekt udostępnia nam 4 operacje do wykonania:

susestudio_34

Testdrive

Pod tym przyciskiem kryje się uruchomienie wirtualnej maszyny na witrynie i możliwości przetestowania naszej kompilacji bez konieczności pobierania i tworzenie wirtualnego środowiska. Maszyna działa przez 60 minut i po tym czasie jest automatycznie wyłączana. Aby móc skorzystać z tej opcji, musimy mieć zainstalowane odpowiednie wtyczki w naszym systemie oraz odblokowane odpowiednie porty (wymagane są nawet pozycje z cyklu 5900). Jeżeli jeden z tych warunków nie zostanie spełniony, wysoce prawodopodobne, że wirtualna maszyna nie uruchomi się.

Download

Przycisk ten nie robi nic innego, jak uruchamia pobieranie obrazu.

View files

Daje nam możliwość zobaczenia struktury katalogów naszej kompilacji, czyli jakby wejścia do środka systemu bez jego instalacji ;).

susestudio_35

Zaś znaczek X służy do usuwania.

Pobieramy nasz system na dysk i go uruchamiamy

Ja wybrałem opcję pobrania na dysk i uruchomienia jej na wirtualnej maszynie. Zobaczymy czy system w ogólnie wstanie ;).

Coś się dzieje, nie jest źle :D

susestudio_36

Pojawił się ekran powitalny, czyli nie jest najgorzej. Wybieramy język polski, zaznaczamy opcję Morfiblog sekretariat i wciskamy klawisz Enter.

Idzie…

susestudio_37

W pewnym momencie wyskoczy nam licencja, którą będziemy musieli zaakceptować.

susestudio_38

Pojawia się ekran logowania.

susestudio_39

Proces logowania zakończył się pomyślnie :)

susestudio_40

Możemy pobawić się naszym systemem :).

Co trzeba wiedzieć, aby budować system?

Pierwszy i elementarny punkt to znajomość paczek. Jeżeli nie będziemy znali paczek lub zapomnimy o jakieś, nic nam nie pomogą nawet dokładne złożenia. Prosty przykład – ten artykuł. Wszak przeglądarka jest, pakiet biurowy jest, ale terminala… nie ma. Dlatego znajomość paczek jest tutaj bardzo ważna i należy dokładnie sprawdzać co dodaliśmy. U mnie był to terminal i wyszło to od razu. Nie daj Boże, jakby zabrakło jakieś biblioteki.

Druga sprawa to założenia. Przed budowaniem naszego distra musimy określić, jakie zadanie będzie spełniać, jakie oprogramowanie najlepiej nada się do tego i kto będzie z tej dystrybucji korzystał. Łatwiej nam jest tworzyć distro pod specjalnie zadania niż dla mas, gdyż wiemy czego możemy się spodziewać.

Kolejna rzecz to nie stosowanie praktyki “dodam jeszcze ten program, może się kiedyś przyda”.

Jeżeli w założeniach nie jest jasno napisane, że ten program trzeba zainstalować, to go nie instalujemy. Zawsze przecież można to zrobić później. Wydłuża to tylko rozmiar i czas budowania obrazu.

Przed wdrożeniem naszej dystrybucji na stanowiska produkcyjne należy najpierw je dokładnie przetestować. To samo tyczy się kolejnych wersji. Pani Krysia w sekretariacie nie będzie efektywnie pracować, skoro system będzie się sypał cały czas, a my będziemy na piechotę wszystko naprawiać i martwić się, czy nasze starania na pewno przyniosą porządny skutek.

Inne uwagi co do narzędzia

Pozwolę sobie jeszcze raz wrócić do narzędzia SUSE Studio i opisać jego “haczyki”.

Nie możemy budować nie wiadomo ile obrazów. Nasze konto posiada pojemność 15 GB.

susestudio_41

Kolejna sprawa to, iż nasze obrazy są przechowywane przez 30 dni. Po tych 30 dniach nasza kompilacja zostanie usunięta. Motywowane jest to tym, że pojemność dysków w serwerach nie jest nieograniczona.

Warto pamiętać, że wszystkie budowane przez nas kompilacje są dostępne publicznie. Jeżeli ja zbudowałem Morfiblog sekretariat, to nie tylko ja mogę go pobrać, ale również inne osoby. Jeżeli zamierzamy budować dystrybucję, która będzie zawierać specjalistyczne narzędzia i nie chcemy, aby inne osoby miały do niej dostęp, to niestety to narzędzia odpada. Uwaga, tutaj podkreślam, Novell posiada w swojej ofercie SUSE Studio, które można zainstalować na serwerach we firmie i w prywatnych warunkach budować swoje kompilacji bez żadnych ograniczeń. Warunek to dobre łącze oraz wydajne maszyny.

Kompilacje “wyprodukowane” przy pomocy darmowego SUSE Studio opatrzone są znakiem wodnym:

susestudio_42

Jako źródło systemu mamy dostępną wersję darmową w postaci openSUSE oraz wersje płatną. Z wersją płatną, czyli tą którą użyłem do budowania projektu w tym poradniku, są dwie sprawy:

    – nie mamy dostępu do poprawek. Dostęp uzyskamy po wykupieniu licencji;
    – nie możemy używać w środowisku komercyjnym bez zakupu odpowiedniej licencji.

Przy pomocy tego narzędzia powstaje bardzo wiele dystrybucji. Jedną z nich jest Cr OS Linux, dystrybucja, która ma za zadanie być podoba do Google Chrome OS.

Podsumowanie

O narzędziu dowiedziałem się z konferencji Linux Days 2012, jednak dopiero teraz znalazłem czas na testy. Jak dla mnie bomba. Mam własną firmę, tworzę swoje distro pod swoje potrzebny, wiem co znajduje się w środku itd. Nawet zaawansowani użytkownicy mogą przy pomocy tego narzędzia tworzyć specjalnie przygotowane pod swoje potrzeby dystrybucje. Ewentualnie jeżeli ktoś ma wizję stworzenia dystrybucji, która zawojuje światem, to również może sięgnąć po SUSE Studio ;).

Raii.pl – internetowe innowacje w języku C/C++