Server PXE (Preboot eXecution Environment) umožňuje bezobslužnou nebo automatizovanou instalaci operačního systému přes síť. Hlavní výhodou pxe je to, že ke spouštění operačního systému (operačního systému) nepotřebujeme žádnou zaváděcí jednotku a nepotřebujeme vypalovat žádný soubor ISO do zařízení DVD nebo USB.
Jakmile je PXE server nakonfigurován, můžeme instalovat stovky systémů současně přes síť. Protože to funguje na architektuře klient-server, chcete-li získat instalaci OS na klientech, nabootujte klienty pomocí možnosti PXE.
V tomto článku nastavím PXE Server na CentOS 7.xa poté se pokusím nainstalovat OS na klienta pomocí pxe boot.
Níže jsou podrobnosti o mém nastavení:
- IP serveru =172.168.1.11
- Název hostitele =pxe.example.com
- OS =CentOS 7.x
- SELinux =povoleno
- Firewall =povoleno
Krok:1 Nainstalujte požadované balíčky pro nastavení PXE
K instalaci a konfiguraci serveru pxe na centos 7.x potřebujeme následující balíčky „dhcp, tftp-server, ftp server(vsftpd), xinted“. Otevřete terminál a proveďte příkaz :
[[email protected] ~]# yum install dhcp tftp tftp-server syslinux vsftpd xinetd
Krok:2 Konfigurace serveru DHCP pro PXE
Když nainstalujeme balíček dhcp, vytvoří se vzorový konfigurační soubor serveru dhcp na „/usr/share/doc/dhcp*/dhcpd.conf.example “, ačkoli konfigurační soubor dhcp je na ‘/etc/dhcp/dhcpd.conf '.
Zkopírujte následující řádky do souboru ‚/etc/dhcp/dhcpd.conf‘, nahraďte podsíť IP a další podrobnosti podle vašeho prostředí.
[[email protected] ~]# vi /etc/dhcp/dhcpd.conf # DHCP Server Configuration file. ddns-update-style interim; ignore client-updates; authoritative; allow booting; allow bootp; allow unknown-clients; # internal subnet for my DHCP Server subnet 172.168.1.0 netmask 255.255.255.0 { range 172.168.1.21 172.168.1.151; option domain-name-servers 172.168.1.11; option domain-name "pxe.example.com"; option routers 172.168.1.11; option broadcast-address 172.168.1.255; default-lease-time 600; max-lease-time 7200; # IP of PXE Server next-server 172.168.1.11; filename "pxelinux.0"; }
Krok:3 Úprava a konfigurace serveru tftp (/etc/xinetd.d/tftp)
TFTP (Trvial File Transfer Protocol) se používá k přenosu souborů z datového serveru na jeho klienty bez jakéhokoli druhu autentizace. V případě nastavení PXE serveru se pro bootstrap použije tftp. Chcete-li nakonfigurovat server tftp, upravte jeho konfigurační soubor ‘ /etc/xinetd.d/tftp ’, změňte parametr ‚disable =yes‘ na ‚disable =no‘ a ostatní parametry ponechte tak, jak jsou.
[[email protected] ~]# vi /etc/xinetd.d/tftp service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /var/lib/tftpboot disable = no per_source = 11 cps = 100 2 flags = IPv4 }
Všechny soubory související se zaváděním ze sítě je třeba umístit do kořenového adresáře tftp „/var/lib/tftpboot ”
Spuštěním následujících příkazů zkopírujte požadované síťové spouštěcí soubory do „/var/lib/tftpboot/“
[[email protected] ~]# cp -v /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot [[email protected] ~]# cp -v /usr/share/syslinux/menu.c32 /var/lib/tftpboot [[email protected] ~]# cp -v /usr/share/syslinux/memdisk /var/lib/tftpboot [[email protected] ~]# cp -v /usr/share/syslinux/mboot.c32 /var/lib/tftpboot [[email protected] ~]# cp -v /usr/share/syslinux/chain.c32 /var/lib/tftpboot [[email protected] ~]# [[email protected] ~]# mkdir /var/lib/tftpboot/pxelinux.cfg [[email protected] ~]# mkdir /var/lib/tftpboot/networkboot [email protected] ~]#
Krok:4 Připojte soubor ISO CentOS 7.x a zkopírujte jeho obsah na místní ftp server
V mém případě jsem si již stáhl CentOS 7.x iso soubor na můj PXE Server. Spusťte níže uvedené příkazy pro připojení souboru iso a poté zkopírujte jeho obsah do adresáře ftp serveru „/var/ftp/pub '
[[email protected] ~]# mount -o loop CentOS-7-x86_64-DVD-1511.iso /mnt/ mount: /dev/loop0 is write-protected, mounting read-only [[email protected] ~]# cd /mnt/ [[email protected] mnt]# cp -av * /var/ftp/pub/
Zkopírujte soubor jádra (vmlimz) a soubor initrd z připojeného souboru iso do „/var/lib/tftpboot/networkboot/ '
[[email protected] ~]# cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/networkboot/ [[email protected] ~]# cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/networkboot/ [[email protected] ~]#
Nyní můžete soubor iso odpojit pomocí příkazu „umount“
[[email protected] ~]# umount /mnt/ [[email protected] ~]#
Krok:5 Vytvořte soubor nabídky kickStart a PXE.
Před vytvořením souboru kickstart nejprve vytvořte heslo uživatele root v zašifrovaném řetězci, protože tento zašifrovaný řetězec hesla použijeme v souboru kickstart.
[[email protected] ~]# openssl passwd -1 [email protected]# $1$e2wrcGGX$tZPQKPsXVhNmbiGg53MN41 [[email protected] ~]#
Výchozí soubor kickstart systému je umístěn pod /root s názvem „anaconda-ks.cfg '. Vytvoříme nový kickstart ve složce /var/ftp/pub s názvem ‘centos7.cfg '
Zkopírujte následující obsah do nového souboru kickstart. Upravte soubor kickstart podle svých potřeb.
[[email protected] ~]# vi /var/ftp/pub/centos7.cfg #platform=x86, AMD64, or Intel EM64T #version=DEVEL # Firewall configuration firewall --disabled # Install OS instead of upgrade install # Use FTP installation media url --url="ftp://172.168.1.11/pub/" # Root password rootpw --iscrypted $1$e2wrcGGX$tZPQKPsXVhNmbiGg53MN41 # System authorization information auth useshadow passalgo=sha512 # Use graphical install graphical firstboot disable # System keyboard keyboard us # System language lang en_US # SELinux configuration selinux disabled # Installation logging level logging level=info # System timezone timezone Europe/Amsterdam # System bootloader configuration bootloader location=mbr clearpart --all --initlabel part swap --asprimary --fstype="swap" --size=1024 part /boot --fstype xfs --size=300 part pv.01 --size=1 --grow volgroup root_vg01 pv.01 logvol / --fstype xfs --name=lv_01 --vgname=root_vg01 --size=1 --grow %packages @^minimal @core %end %addon com_redhat_kdump --disable --reserve-mb='auto' %end
Vytvořte soubor nabídky PXE (/var/lib/tftpboot/pxelinux.cfg/default ), zkopírujte následující obsah do souboru nabídky pxe.
[[email protected] ~]# vi /var/lib/tftpboot/pxelinux.cfg/default default menu.c32 prompt 0 timeout 30 MENU TITLE LinuxTechi.com PXE Menu LABEL centos7_x64 MENU LABEL CentOS 7_X64 KERNEL /networkboot/vmlinuz APPEND initrd=/networkboot/initrd.img inst.repo=ftp://172.168.1.11/pub ks=ftp://172.168.1.11/pub/centos7.cfg
Krok:6 Spusťte a povolte službu xinetd, dhcp a vsftpd.
Pomocí níže uvedených příkazů spusťte a povolte xinetd, dhcp a vsftpd.
[[email protected] ~]# systemctl start xinetd [[email protected] ~]# systemctl enable xinetd [[email protected] ~]# systemctl start dhcpd.service [[email protected] ~]# systemctl enable dhcpd.service Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service. [[email protected] ~]# [[email protected] ~]# systemctl start vsftpd [[email protected] ~]# systemctl enable vsftpd Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service. [[email protected] ~]#
V případě, že je povolen SELinux, nastavte následující pravidlo selinux pro ftp server.
[[email protected] ~]# setsebool -P allow_ftpd_full_access 1 [[email protected] ~]#
Otevřete porty v bráně firewall operačního systému pomocí následujících příkazů firewall-cmd
[[email protected] ~]# firewall-cmd --add-service=ftp --permanent success [[email protected] ~]# firewall-cmd --add-service=dhcp --permanent success [[email protected] ~]# firewall-cmd --add-port=69/tcp --permanent success [[email protected] ~]# firewall-cmd --add-port=69/udp --permanent success [[email protected] ~]# firewall-cmd --add-port=4011/udp --permanent success [[email protected] ~]# firewall-cmd --reload success [[email protected] ~]#
Do této chvíle je instalace a konfigurace PXE serveru dokončena.
Krok:7 Spusťte klienty pomocí možnosti spouštění pxe.
Jak je vidět výše, instalace byla zahájena jakoukoli lidskou interakcí. Doufám, že se vám instalace a konfigurace PXE serveru líbí. Podělte se o své názory a komentáře.