Środowisko wspomagania automatycznej instalacji GNU/Linux „Multistart” prezentacja pracy dyplomowej Marta i Paweł Szcześniak
Problem Jak szybko zainstalować kilkadziesiąt lub więcej systemów operacyjnych na podobnych maszynach?
Cel Stworzenie zestawu klient serwer pozwalającego na szybkie tworzenie oraz zmianę przygotowanych konfiguracji oraz pełne zarządzanie usługą dhcp.
Preboot Execution Environment (PXE) dhcp (67 udp) tftp (69 udp) dns (53 udp,tcp) ftp/http/nfs/…
pxelinux
pxegrub
Instalacje automatyczne
Gotowe produkty RedHat - Cobbler OpenSUSE - AutoYaST Debian - FAI: Fully Automatic Installation FAI oraz AutoYaST przygotowują tylko i wyłącznie konfigurację dla instalatora danej dystrybucji. Poza Cobblerem nie ma mozliwości zarządzania dhcp. Żaden z produktów nie daje możliwości zdalnego zarządzania usługą dhcp.
Architektura rozwiązania Dedykowany system operacyjny linux/unix Serwer usługi Klient usługi Komunikacja po tcp Źródła w c/c++, pisane tak aby zapewnić maksymalną przenośność pomiędzy różnymi uniksami
Cechy rozwiązania Skalowalność Łatwość obsługi Szybkie kreowanie nowych konfiguracji Szybkie konfigurowanie źródeł instalacji Możliwość wykorzystania jako tylko i wyłącznie jako narzędzie do tworzenia konfiguracji
Dodatkowe elementy Serwer usługi tftp (atftpd, xinetd/in.tftp) Serwer usługi ftp (vsftpd) Serwer usługi http (apache) Serwer usługi nfs a zatem również usługa rpc Kompilator c/c++ (gcc) Sieciowe bootloadery: pxelinux i pxegrub
Serwer Pracuje w tle jako demon Pełni rolę bazy danych Zapewnia synchronizację danych pomiędzy klientami Wykonuje polecenia klienta Generuje konfiguracje dla usługi dhcp Nadzoruje pracę usługi dhcp Generuje przygotowane konfiguracje dla instalowanych dystrybucji Zbiera dane statystyczne
Budowa serwera - założenia Wątek pętli głównej akceptującej połączenia klienckie Wątek balansujący obciążenie, rozdzielający nowe połączenia pomiędzy wątki robocze. Tworzy również nowe dynamiczne wątki robocze. N wątków roboczych obsługujących klientów, z czego możliwość uruchomienia części jako wątki statyczne, uruchomione raz bez możliwości zamknięcia. I wątków obsługi usługi dhcp
Klient
Budowa klienta - założenia Posiada interfejs tekstowy (TUI) Jednowątkowy
Dodatkowe elementy projektu Biblioteka obsługi połączeń tcp Biblioteka do obsługi plików.ini Biblioteka interfejsu oparta o ncurses
Biblioteka obsługi połączeń tcp
Biblioteka do obsługi plików.ini Interfejs do obsługi plików tekstowych Interfejs do obsługi sekcji, zmiennych, wartości i komentarzy
Biblioteka interfejsu oparta o ncurses
Elementy interfejsu Menu poziome Menu pionowe Textbox Editbox Checkbox list Radio list Zapytania tak/nie, tak/nie/przerwij Panel wyboru pliku
Środowisko programistyczne i testowe Maszyna deweloperska Gospodarz wirtualnych maszyn VirtualBox Gospodarz wirtualnych maszyn VMware Maszyny fizyczne
Testy Elementy tui klienta Biblioteka sieciowa Biblioteka ini Biblioteka połączeń tcp Środowisko pxe Serwer Całość zestawu klient serwer
Dodatkowe korzyści Gotowy szkielet wielowątkowego demona usługi sieciowej Biblioteki do wykorzystania przy innych projektach (zestawy elementów tui, biblioteka do obsługi TCP, bilbioteka do obsługi plków.ini)