Instal Beberapa Distribusi Linux Menggunakan Boot Jaringan PXE di RHEL/CentOS 8


Server PXELingkungan eXecution Preboot adalah arsitektur server-klien terstandar yang menginstruksikan sistem klien untuk mem-boot, menjalankan, atau menginstal beberapa sistem operasi Linux menggunakan antarmuka jaringan berkemampuan PXE pada infrastruktur jaringan Anda.

Persyaratan

    • Instalasi Server Minimal CentOS 8
    • Pemasangan Server Minimal RHEL 8
    • Konfigurasikan Alamat IP Statis di RHEL/CentOS 8

Dalam artikel ini, Anda akan mempelajari cara memasang dan mengonfigurasi Server Boot Jaringan PXE di CentOS/RHEL 8 dengan repositori instalasi lokal yang dicerminkan yang disediakan oleh CentOS 8 dan Gambar ISO RHEL 8.

Untuk pengaturan PXE Network Boot ini, kami akan menginstal paket berikut pada sistem:

  • DNSMASQ – penerus DNS ringan yang menyediakan layanan DNS dan DHCP dengan dukungan untuk PXE dan server TFTP.
  • Syslinux – boot loader Linux yang menyediakan boot loader untuk booting jaringan.
  • Server TFTP – Protokol Transfer File sederhana yang membuat gambar yang dapat di-boot tersedia untuk diunduh melalui jaringan.
  • Server VSFTPD – protokol transfer file aman yang akan menampung gambar DVD cermin yang dipasang secara lokal – yang akan bertindak sebagai repositori instalasi cermin RHEL/CentOS 8 resmi tempat penginstal akan mengambil paket yang diperlukan.

Langkah 1: Instal dan Konfigurasi Server DNSMASQ

1. Penting untuk mengingatkan Anda bahwa salah satu antarmuka jaringan Anda harus dikonfigurasi dengan alamat IP statis dari rentang IP jaringan yang sama yang menyediakan layanan PXE.

Setelah Anda mengonfigurasi alamat IP statis, perbarui paket perangkat lunak sistem Anda dan instal daemon DNSMASQ.

dnf install dnsmasq

2. Setelah DNSMASQ diinstal, Anda akan menemukan file konfigurasi defaultnya di direktori /etc/dnsmasq.conf, yang cukup jelas namun lebih sulit untuk dikonfigurasi, karena penjelasannya yang banyak dikomentari.

Pertama, pastikan untuk membuat cadangan file ini jika Anda memerlukannya untuk ditinjau nanti, lalu buat file konfigurasi baru menggunakan editor favorit Anda seperti yang ditunjukkan.

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

3. Sekarang, salin dan tempel konfigurasi berikut pada file /etc/dnsmasq.conf dan ubah parameter konfigurasi sesuai dengan pengaturan jaringan Anda.

interface=enp0s3,lo
#bind-interfaces
domain=tecmint
DHCP range-leases
dhcp-range= enp0s3,192.168.1.3,192.168.1.253,255.255.255.0,1h
PXE
dhcp-boot=pxelinux.0,pxeserver,192.168.1.2
Gateway
dhcp-option=3,192.168.1.1
DNS
dhcp-option=6,92.168.1.1, 8.8.8.8
server=8.8.4.4
Broadcast Address
dhcp-option=28,10.0.0.255
NTP Server
dhcp-option=42,0.0.0.0

pxe-prompt="Press F8 for menu.", 60
pxe-service=x86PC, "Install CentOS 8 from network server 192.168.1.2", pxelinux
enable-tftp
tftp-root=/var/lib/tftpboot

Pernyataan konfigurasi yang perlu Anda ubah adalah sebagai berikut:

  • antarmuka – Antarmuka jaringan server harus mendengarkan dan menyediakan layanan.
  • bind-interfaces – Batalkan komentar untuk mengikat antarmuka ke kartu jaringan tertentu.
  • domain – Ganti dengan nama domain Anda.
  • dhcp-range – Ubah dengan rentang IP jaringan Anda.
  • dhcp-boot – Ganti dengan Alamat IP antarmuka jaringan Anda.
  • dhcp-option=3,192.168.1.1 – Ganti dengan Gateway jaringan Anda.
  • dhcp-option=6,92.168.1.1 – Ganti dengan IP Server DNS Anda.
  • server=8.8.4.4 – Tambahkan Alamat IP penerus DNS Anda.
  • dhcp-option=28,10.0.0.255 – Ganti dengan alamat IP siaran jaringan Anda jika diinginkan.
  • dhcp-option=42,0.0.0.0 -Tambahkan server waktu jaringan Anda (Alamat 0.0.0.0 untuk referensi mandiri).
  • pxe-prompt – Biarkan sebagai default.
  • pxe=service – Gunakan x86PC untuk arsitektur 32-bit/64-bit dan tambahkan perintah deskripsi menu di bawah tanda kutip string.
  • enable-tftp – Mengaktifkan server TFTP bawaan.
  • tftp-root – Tambahkan lokasi file booting jaringan /var/lib/tftpboot.

Untuk opsi lanjutan lainnya mengenai file konfigurasi, silakan membaca manual dnsmasq.

Langkah 2: Instal Bootloader SYSLINUX

4. Setelah konfigurasi utama DNSMASQ selesai, instal paket bootloader Syslinx PXE menggunakan perintah berikut.

dnf install syslinux

5. Bootloader Syslinx PXE diinstal pada /usr/share/syslinux, Anda dapat mengonfirmasinya dengan menjalankan perintah ls seperti yang ditunjukkan.

ls /usr/share/syslinux

Langkah 3: Instal TFTP-Server dan Salin dengan SYSLINUX Bootloaders

6. Sekarang, instal TFTP-Server dan salin semua bootloader Syslinux dari /usr/share/syslinux/ ke /var/lib /tftpboot seperti yang ditunjukkan.

dnf install tftp-server
cp -r /usr/share/syslinux/* /var/lib/tftpboot

Langkah 4: Siapkan File Konfigurasi Server PXE

7. Secara default, Server PXE membaca konfigurasinya dari sekumpulan file spesifik yang ditemukan di pxelinux.cfg, yang harus ditemukan di direktori yang dijelaskan dalam pengaturan tftp-root dari file konfigurasi DNSMASQ di atas.

Pertama, buat direktori pxelinux.cfg dan buat file default dengan mengeluarkan perintah berikut.

mkdir /var/lib/tftpboot/pxelinux.cfg
touch /var/lib/tftpboot/pxelinux.cfg/default

8. Sekarang buka dan edit file konfigurasi default PXE dengan opsi instalasi distribusi Linux yang benar. Selain itu, pastikan untuk mengingat bahwa jalur yang ditetapkan dalam file ini harus relatif terhadap direktori /var/lib/tftpboot.

nano /var/lib/tftpboot/pxelinux.cfg/default

Berikut ini adalah contoh file konfigurasi yang dapat Anda gunakan, namun pastikan untuk mengubah gambar instalasi, protokol dan IP untuk mencerminkan repositori sumber instalasi jaringan Anda dan lokasi yang sesuai.

default menu.c32
prompt 0
timeout 300
ONTIMEOUT local

menu title ########## PXE Boot Menu ##########

label 1
menu label ^1) Install CentOS 8 x64 with Local Repo
kernel centos8/vmlinuz
append initrd=centos7/initrd.img method=ftp://192.168.1.2/pub devfs=nomount

label 2
menu label ^2) Install CentOS 8 x64 with http://mirror.centos.org Repo
kernel centos8/vmlinuz
append initrd=centos8/initrd.img method=http://mirror.centos.org/centos/8/BaseOS/x86_64/os/ devfs=nomount ip=dhcp

label 3
menu label ^3) Install CentOS 8 x64 with Local Repo using VNC
kernel centos8/vmlinuz
append  initrd=centos8/initrd.img method=ftp://192.168.1.2/pub devfs=nomount inst.vnc inst.vncpassword=password

label 4
menu label ^4) Boot from local drive

Dalam konfigurasi di atas, Anda dapat melihat bahwa gambar boot CentOS 8 (kernel dan initrd) berada di centos7 direktori yang berhubungan dengan /var/lib/tftpboot (yaitu /var/lib/tftpboot/centos7) dan repositori penginstal dapat diakses dengan menggunakan protokol FTP di 192.168.1.2/pub (alamat IP server PXE).

Selain itu, menu label 2 menjelaskan repositori cermin sumber instalasi CentOS 8 resmi (koneksi internet harus ada pada sistem klien) dan menu label 3 menjelaskan bahwa instalasi klien harus dilakukan melalui VNC jarak jauh (di sini ganti kata sandi VNC dengan kata sandi yang kuat).

Penting: Seperti yang Anda lihat pada konfigurasi di atas, kami telah menggunakan gambar CentOS 8 untuk tujuan demonstrasi, namun Anda juga dapat menggunakan gambar RHEL 8.

Langkah 5: Tambahkan Gambar Boot CentOS 8 ke Server PXE

9. Untuk menambahkan gambar CentOS 8 ke Server PXE, Anda perlu mengunduh Gambar ISO DVD CentOS 8 secara lokal menggunakan perintah wget dan memasangnya.

wget http://centos.mirrors.estointernet.in/8.2.2004/isos/x86_64/CentOS-8.2.2004-x86_64-dvd1.iso
mount -o loop CentOS-8.2.2004-x86_64-dvd1.iso /mnt

10. Setelah mengunduh CentOS 8, Anda perlu membuat direktori centos8 dan menyalin kernel bootable dan image initrd.

mkdir /var/lib/tftpboot/centos8
cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/centos8
cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/centos8

Alasan di balik pendekatan ini adalah agar nantinya Anda dapat memiliki direktori terpisah untuk setiap distribusi Linux baru di bawah /var/lib/tftpboot tanpa mengacaukan keseluruhan struktur direktori.

Langkah 6: Buat Sumber Instalasi Cermin Lokal CentOS 8

11. Ada berbagai protokol (HTTP, HTTPS, atau NFS) yang tersedia untuk penyiapan Mirror sumber instalasi lokal CentOS 8, tetapi saya memilih protokol FTP karena mudah diatur menggunakan server vsftpd.

Mari kita instal server Vsftpd dan salin semua konten DVD CentOS 8 ke direktori FTP /var/ftp/pub seperti yang ditunjukkan.

dnf install vsftpd
cp -r /mnt/*  /var/ftp/pub/ 
chmod -R 755 /var/ftp/pub

12. Kini setelah semua konfigurasi server PXE selesai, Anda dapat memulai, mengaktifkan, dan memverifikasi status server DNSMASQ dan VSFTPD.

systemctl start dnsmasq
systemctl status dnsmasq
systemctl start vsftpd
systemctl status vsftpd
systemctl enable dnsmasq
systemctl enable vsftpd

13. Selanjutnya, Anda perlu membuka port pada firewall Anda agar sistem klien dapat menjangkau dan melakukan booting dari server PXE.

firewall-cmd --add-service=ftp --permanent  	## Port 21
firewall-cmd --add-service=dns --permanent  	## Port 53
firewall-cmd --add-service=dhcp --permanent  	## Port 67
firewall-cmd --add-port=69/udp --permanent  	## Port for TFTP
firewall-cmd --add-port=4011/udp --permanent  ## Port for ProxyDHCP
firewall-cmd --reload  ## Apply rules

14. Untuk memverifikasi lokasi jaringan Sumber Instalasi FTP, buka browser Anda dan ketik alamat IP Server PXE dengan protokol FTP diikuti dengan lokasi jaringan /pub.

ftp://192.168.1.2/pub

Langkah 7: Konfigurasikan Klien untuk Boot dari Jaringan

15. Sekarang konfigurasikan sistem klien untuk melakukan booting dan menginstal CentOS 8 pada sistem mereka dengan mengonfigurasi Network Boot sebagai perangkat boot utama dari Menu BIOS.

Setelah sistem melakukan booting, Anda akan mendapatkan prompt PXE, di mana Anda perlu menekan tombol F8 untuk masuk ke presentasi dan kemudian tekan tombol Enter untuk melanjutkan ke menu PXE.

Itu saja untuk menyiapkan Server PXE minimal di CentOS/RHEL 8.