Wyszukiwanie w witrynie

Jak zainstalować Ubuntu za pośrednictwem serwera PXE przy użyciu lokalnych źródeł DVD


PXE lub Preboot eXecution Environment to mechanizm serwer-klient, który instruuje komputer kliencki, aby uruchomił się z sieci.

W tym przewodniku pokażemy, jak zainstalować Serwer Ubuntu poprzez serwer PXE z lokalnymi źródłami HTTP odzwierciedlonymi z obrazu ISO serwera Ubuntu za pośrednictwem sieci Apache serwer. Serwer PXE używany w tym samouczku to serwer Dnsmasq.

Wymagania:

  1. Instalacja Ubuntu Server 16.04 lub 17.04
  2. Interfejs sieciowy skonfigurowany ze statycznym adresem IP
  3. Obraz ISO Ubuntu Server 16.04 lub 17.04

Krok 1: Zainstaluj i skonfiguruj serwer DNSMASQ

1. Aby skonfigurować serwer PXE, w pierwszym kroku zaloguj się na konto root lub konto z uprawnieniami root i zainstaluj pakiet Dnsmasq w Ubuntu, wydając następujące polecenie.

apt install dnsmasq

2. Następnie utwórz kopię zapasową głównego pliku konfiguracyjnego dnsmasq i rozpocznij edycję pliku z następującymi konfiguracjami.

mv /etc/dnsmasq.conf /etc/dnsmasq.conf.backup
nano /etc/dnsmasq.conf

Dodaj następującą konfigurację do pliku dnsmasq.conf.

interface=ens33,lo
bind-interfaces
domain=mypxe.local

dhcp-range=ens33,192.168.1.230,192.168.1.253,255.255.255.0,1h
dhcp-option=3,192.168.1.1
dhcp-option=6,192.168.1.1
dhcp-option=6,8.8.8.8
server=8.8.4.4
dhcp-option=28,10.0.0.255
dhcp-option=42,0.0.0.0

dhcp-boot=pxelinux.0,pxeserver,192.168.1.14

pxe-prompt="Press F8 for menu.", 2
pxe-service=x86PC, "Install Ubuntu 16.04 from network server 192.168.1.14", pxelinux
enable-tftp
tftp-root=/srv/tftp

W powyższym pliku konfiguracyjnym zamień odpowiednio następujące wiersze.

  • interfejs Zastąp własnym interfejsem sieciowym komputera.
  • domena – zastąp ją nazwą swojej domeny.
  • dhcp-range – Zdefiniuj własny zasięg sieci, dla którego DHCP będzie przydzielał adresy IP do tego segmentu sieci oraz na jak długo powinien być przydzielany adres IP klientowi.
  • dhcp-option=3 – adres IP Twojej bramy.
  • dhcp-option=6 Adresy IP serwerów DNS – można zdefiniować kilka adresów IP DNS.
  • serwer – adres IP forwardera DNS.
  • dhcp-option=28 – adres rozgłoszeniowy Twojej sieci.
  • dhcp-option=42 – serwer NTP – użyj adresu 0.0.0.0, który służy do samodzielnego odwoływania się.
  • dhcp-boot – plik startowy pxe i adres IP serwera PXE (tutaj pxelinux.0 i adres IP tej samej maszyny).
  • pxe-prompt – można nacisnąć klawisz F8, aby wejść do menu PXE lub poczekać 2 sekundy przed automatycznym przełączeniem do menu PXE.
  • pxe=service – użyj x86PC dla architektur 32-bitowych/64-bitowych i wprowadź monit z opisem menu w cudzysłowie. Innymi typami wartości mogą być: PC98, IA64_EFI, Alpha, Arc_x86, Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI i X86-64_EFI.
  • enable-tftp – włącza wbudowany serwer TFTP.
  • tftp-root – ścieżka systemowa dla plików startowych sieci.

3. Po zakończeniu edycji pliku konfiguracyjnego dnsmasq utwórz katalog dla plików PXE netboot, wydając poniższe polecenie i zrestartuj demona dnsmasq, aby zastosować zmiany. Sprawdź status usługi dnsmasq, aby zobaczyć, czy została uruchomiona.

mkdir /srv/tftp
systemctl restart dnsmasq.service
systemctl status dnsmasq.service

Krok 2: Zainstaluj pliki Netboot TFTP

4. W następnym kroku pobierz najnowszą wersję obrazu ISO serwera Ubuntu dla architektury 64-bitowej, wydając następujące polecenie.

wget http://releases.ubuntu.com/16.04/ubuntu-16.04.3-server-amd64.iso

5. Po pobraniu obrazu ISO serwera Ubuntu zamontuj obraz w katalogu /mnt i wyświetl zawartość zamontowanego katalogu, uruchamiając poniższe polecenia.

mount -o loop ubuntu-16.04.3-desktop-amd64.iso /mnt/
ls /mnt/

6. Następnie skopiuj pliki netboot z drzewa zamontowanego w Ubuntu do ścieżki systemowej tftp, wydając poniższe polecenie. Podaj także ścieżkę systemową tftp, aby zobaczyć skopiowane pliki.

cp -rf /mnt/install/netboot/* /srv/tftp/
ls /srv/tftp/

Krok 3: Przygotuj lokalne pliki źródłowe instalacji

7. Źródła instalacji sieci lokalnej dla serwera Ubuntu będą dostarczane za pośrednictwem protokołu HTTP. Najpierw zainstaluj, uruchom i włącz serwer WWW Apache, wydając następujące polecenia.

apt install apache2
systemctl start apache2
systemctl status apache2
systemctl enable apache2

8. Następnie skopiuj zawartość zamontowanej płyty DVD z Ubuntu do ścieżki głównej serwera WWW Apache, wykonując poniższe polecenia. Wyświetl zawartość ścieżki głównej serwera Apache, aby sprawdzić, czy drzewo zamontowane w systemie Ubuntu ISO zostało całkowicie skopiowane.

cp -rf /mnt/* /var/www/html/
ls /var/www/html/

9. Następnie otwórz port HTTP w zaporze i przejdź do adresu IP swojego komputera za pomocą przeglądarki (http://192.168.1.14/ubuntu), aby sprawdzić, czy może dotrzeć do źródeł za pośrednictwem protokołu HTTP.

ufw allow http

Krok 4: Skonfiguruj plik konfiguracyjny serwera PXE

10. Aby móc obracać pliki rootfs za pośrednictwem środowiska PXE i źródeł lokalnych, Ubuntu musi otrzymać instrukcje za pośrednictwem pliku wstępnego. Utwórz następujący plik local-sources.seed w ścieżce głównej dokumentu serwera internetowego z następującą treścią.

nano /var/www/html/ubuntu/preseed/local-sources.seed

Dodaj następującą linię do pliku local-sources.seed.

d-i live-installer/net-image string http://192.168.1.14/ubuntu/install/filesystem.squashfs

W tym miejscu upewnij się, że odpowiednio zastąpiłeś adres IP. Powinien to być adres IP, pod którym znajdują się zasoby sieciowe. W tym przewodniku źródła sieciowe, serwer PXE i serwer TFTP są hostowane w tym samym systemie. W zatłoczonej sieci możesz chcieć uruchomić PXE, TFTP i usługi internetowe na oddzielnych komputerach, aby poprawić szybkość sieci PXE.

11. Serwer PXE odczytuje i wykonuje pliki konfiguracyjne znajdujące się w katalogu głównym pxelinux.cfg TFTP w następującej kolejności: pliki GUID, pliki MAC i plik domyślny.

Katalog pxelinux.cfg jest już utworzony i wypełniony wymaganymi plikami konfiguracyjnymi PXE, ponieważ wcześniej skopiowaliśmy pliki netboot z obrazu ISO zamontowanego w systemie Ubuntu.

Aby dodać powyższy plik instrukcji wstępnej do etykiety instalacyjnej Ubuntu w pliku konfiguracyjnym PXE, otwórz poniższy plik do edycji, wydając poniższe polecenie.

nano /srv/tftp/ubuntu-installer/amd64/boot-screens/txt.cfg

W pliku konfiguracyjnym Ubuntu PXE txt.cfg zamień następujący wiersz, jak pokazano w poniższym fragmencie.

append auto=true url=http://192.168.1.14/ubuntu/preseed/local-sources.seed vga=788 initrd=ubuntu-installer/amd64/initrd.gz --- quiet

Plik /srv/tftp/ubuntu-installer/amd64/boot-screens/txt.cfg powinien mieć następującą zawartość globalną:

default install
label install
	menu label ^Install Ubuntu 16.04 with Local Sources
	menu default
	kernel ubuntu-installer/amd64/linux
	append auto=true url=http://192.168.1.14/ubuntu/preseed/local-sources.seed vga=788 initrd=ubuntu-installer/amd64/initrd.gz --- quiet 
label cli
	menu label ^Command-line install
	kernel ubuntu-installer/amd64/linux
	append tasks=standard pkgsel/language-pack-patterns= pkgsel/install-language-support=false vga=788 initrd=ubuntu-installer/amd64/initrd.gz --- quiet

12. Jeśli chcesz dodać instrukcję adresu URL do menu Ubuntu Rescue, otwórz poniższy plik i upewnij się, że zaktualizowałeś zawartość, jak pokazano w poniższym przykładzie.

nano /srv/tftp/ubuntu-installer/amd64/boot-screens/rqtxt.cfg

Dodaj następującą konfigurację do pliku rqtxt.cfg.

label rescue
	menu label ^Rescue mode
	kernel ubuntu-installer/amd64/linux
	append auto=true url=http://192.168.1.14/ubuntu/preseed/local-sources.seed vga=788 initrd=ubuntu-installer/amd64/initrd.gz rescue/enable=true --- quiet

Ważną linią, którą powinieneś zaktualizować, jest url=http://192.168.1.14/ubuntu/preseed/local-sources.seed, która określa adres URL, pod którym w Twojej sieci znajduje się wyciśnięty plik.

13. Na koniec otwórz plik menu.cfg Ubuntu pxe i skomentuj pierwsze trzy linie, aby rozwinąć ekran startowy PXE, jak pokazano na poniższym zrzucie ekranu.

nano /srv/tftp/ubuntu-installer/amd64/boot-screens/menu.cfg

Skomentuj te trzy następujące wiersze.

#menu hshift 13
#menu width 49
#menu margin 8

Krok 5: Otwórz porty zapory ogniowej w Ubuntu

14. Wykonaj polecenie netstat z uprawnieniami roota, aby zidentyfikować otwarte porty dnsmasq, tftp i web w stanie nasłuchiwania na swoim serwerze, jak pokazano w poniższym fragmencie.

netstat -tulpn

15. Po zidentyfikowaniu wszystkich wymaganych portów wydaj poniższe polecenia, aby otworzyć porty w zaporze ufw.

ufw allow 53/tcp
ufw allow 53/udp
ufw allow 67/udp
ufw allow 69/udp
ufw allow 4011/udp

Krok 6: Zainstaluj Ubuntu ze źródłami lokalnymi za pośrednictwem PXE

16. Aby zainstalować serwer Ubuntu poprzez PXE i skorzystać z lokalnych źródeł instalacji sieciowej, zrestartuj klienta komputera, poinstruuj BIOS, aby uruchomił się z sieci i na pierwszym ekranie menu PXE wybierz pierwszą opcję, jak pokazano na poniżej obrazów.

17. Procedurę instalacji należy przeprowadzić w zwykły sposób. Gdy instalator osiągnie konfigurację kraju lustrzanego archiwum Ubuntu, użyj strzałki w górę na klawiaturze, aby przejść do pierwszej opcji, która mówi: wprowadź informacje ręcznie.

18. Naciśnij klawisz [enter], aby zaktualizować tę opcję, usuń ciąg lustrzany i dodaj adres IP źródeł lustrzanych serwera WWW, a następnie naciśnij klawisz Enter, aby kontynuować, jak pokazano w poniżej obrazu.

http://192.168.1.14

19. Na następnym ekranie dodaj katalog archiwum lustrzanego, jak pokazano poniżej, i naciśnij klawisz Enter, aby kontynuować proces instalacji i zwykle.

/ubuntu

20. Jeśli chcesz zobaczyć informacje o tym, jakie pakiety są pobierane z lokalnego serwera lustrzanego Twojej sieci, naciśnij klawisze [CTRL+ALT+F2], aby zmienić konsolę wirtualną maszyny i wydaj następujące polecenie.

tail –f /var/log/syslog

21. Po zakończeniu instalacji serwera Ubuntu zaloguj się do nowo zainstalowanego systemu i uruchom poniższe polecenie z uprawnieniami roota, aby zaktualizować pakiety repozytoriów ze źródeł sieci lokalnej do oficjalnych serwerów lustrzanych Ubuntu.

Aby zaktualizować system za pomocą repozytoriów internetowych, konieczna jest zmiana serwerów lustrzanych.

sudo sed –i.bak ‘s/192.168.1.14/archive.ubuntu.com/g’ /etc/apt/sources.list

Upewnij się, że zastąpiłeś adres IP zgodnie z adresem IP własnych lokalnych źródeł internetowych.

To wszystko! Możesz teraz zaktualizować swój system serwerowy Ubuntu i zainstalować całe wymagane oprogramowanie. Instalacja Ubuntu poprzez PXE i serwer lustrzany źródła sieci lokalnej może przyspieszyć instalację oraz zaoszczędzić przepustowość Internetu i koszty w przypadku wdrożenia dużej liczby serwerów w krótkim czasie w Twojej siedzibie.