Menyiapkan 'Server Boot Jaringan PXE' untuk Beberapa Instalasi Distribusi Linux di RHEL/CentOS 7


Server PXE – Lingkungan eXecution Preboot – memerintahkan komputer klien untuk melakukan booting, menjalankan atau menginstal sistem operasi secara langsung dari antarmuka jaringan, sehingga menghilangkan kebutuhan untuk membakar CD/DVD atau menggunakan media fisik, atau, dapat memudahkan pekerjaan menginstal distribusi Linux pada infrastruktur jaringan Anda di beberapa mesin secara bersamaan.

Persyaratan

  1. Prosedur Instalasi Minimal CentOS 7
  2. RHEL 7 Prosedur Instalasi Minimal
  3. Konfigurasikan Alamat IP Statis di RHEL/CentOS 7
  4. Hapus Layanan yang Tidak Diinginkan di RHEL/CentOS 7
  5. Instal NTP Server untuk Mengatur Waktu Sistem yang Benar di RHEL/CentOS 7

Artikel ini akan menjelaskan bagaimana Anda dapat menginstal dan mengkonfigurasi Server PXE di RHEL/CentOS 7 x64-bit dengan repositori instalasi lokal yang dicerminkan, sumber tersedia oleh image ISO DVD CentOS 7, dengan bantuan Server DNSMASQ.

Yang menyediakan layanan DNS dan DHCP, paket Syslinux yang menyediakan bootloader untuk booting jaringan, TFTP-Server, yang membuat gambar yang dapat di-boot tersedia untuk diunduh melalui jaringan menggunakan Trivial File Transfer Protocol (TFTP) dan Server VSFTPD yang akan menampung gambar DVD cermin yang dipasang secara lokal – yang akan bertindak sebagai RHEL resmi /CentOS 7 mencerminkan repositori instalasi tempat penginstal akan mengekstrak paket yang diperlukan.

Langkah 1: Instal dan konfigurasikan Server DNSMASQ

1. Tidak perlu diingatkan bahwa ini benar-benar menuntut salah satu antarmuka kartu jaringan Anda, jika server Anda memiliki lebih banyak NIC, harus dikonfigurasi dengan alamat IP statis dari rentang IP yang sama dengan milik segmen jaringan yang akan menyediakan layanan PXE.

Jadi, setelah Anda mengonfigurasi Alamat IP statis, memperbarui sistem, dan melakukan pengaturan awal lainnya, gunakan perintah berikut untuk menginstal daemon DNSMASQ.

yum install dnsmasq

2. File konfigurasi default utama DNSMASQ yang terletak di direktori /etc sudah cukup jelas tetapi dimaksudkan untuk menjadi cukup sulit untuk diedit, sesuai dengan penjelasannya yang banyak dikomentari.

Pertama, pastikan Anda membuat cadangan file ini jika Anda perlu meninjaunya nanti dan, kemudian, buat file konfigurasi kosong baru menggunakan editor teks favorit Anda dengan mengeluarkan perintah berikut.

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

3. Sekarang, salin dan tempel konfigurasi berikut pada file dnsmasq.conf dan pastikan Anda mengubah pernyataan yang dijelaskan di bawah agar sesuai dengan pengaturan jaringan Anda.

interface=eno16777736,lo
#bind-interfaces
domain=centos7.lan
DHCP range-leases
dhcp-range= eno16777736,192.168.1.3,192.168.1.253,255.255.255.0,1h
PXE
dhcp-boot=pxelinux.0,pxeserver,192.168.1.20
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 7 from network server 192.168.1.20", pxelinux
enable-tftp
tftp-root=/var/lib/tftpboot

Pernyataan yang perlu Anda ubah adalah sebagai berikut:

  1. antarmuka – Antarmuka yang harus didengarkan oleh server dan menyediakan layanan.
  2. bind-interfaces – Batalkan komentar untuk mengikat hanya pada antarmuka ini.
  3. domain – Ganti dengan nama domain Anda.
  4. dhcp-range – Ganti dengan rentang IP yang ditentukan oleh network mask Anda di segmen ini.
  5. dhcp-boot – Ganti pernyataan IP dengan Alamat IP antarmuka Anda.
  6. dhcp-option=3,192.168.1.1 – Ganti Alamat IP dengan Gateway segmen jaringan Anda.
  7. dhcp-option=6,92.168.1.1 – Ganti Alamat IP dengan IP Server DNS Anda – beberapa IP DNS dapat ditentukan.
  8. server=8.8.4.4 – Masukkan Alamat IP penerus DNS Anda.
  9. dhcp-option=28,10.0.0.255 – Ganti Alamat IP dengan alamat siaran jaringan –opsional.
  10. dhcp-option=42,0.0.0.0 – Masukkan server waktu jaringan Anda – secara opsional (Alamat 0.0.0.0 untuk referensi mandiri).
  11. pxe-prompt – Biarkan sebagai default – artinya menekan tombol F8 untuk masuk ke menu 60 dengan waktu tunggu beberapa detik..
  12. pxe=service – Gunakan x86PC untuk arsitektur 32-bit/64-bit dan masukkan prompt deskripsi menu di bawah tanda kutip string. Tipe nilai lainnya dapat berupa: PC98, IA64_EFI, Alpha, Arc_x86, Intel_Lean_Client, IA32_EFI, BC_EFI, Xscale_EFI, dan X86-64_EFI.
  13. enable-tftp – Mengaktifkan server TFTP bawaan.
  14. tftp-root – Gunakan /var/lib/tftpboot – lokasi untuk semua file netbooting.

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

Langkah 2: Instal Bootloader SYSLINUX

4. Setelah Anda mengedit dan menyimpan file konfigurasi utama DNSMASQ, lanjutkan dan instal paket bootloader PXE Syslinx dengan mengeluarkan perintah berikut.

yum install syslinux

5. File bootloader PXE berada di jalur sistem absolut /usr/share/syslinux, sehingga Anda dapat memeriksanya dengan mencantumkan konten jalur ini. Langkah ini bersifat opsional, namun Anda mungkin perlu mengetahui jalur ini karena pada langkah berikutnya, kami akan menyalin semua kontennya ke jalur Server TFTP.

ls /usr/share/syslinux

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

6. Sekarang, mari beralih ke langkah berikutnya dan menginstal TFTP-Server dan, kemudian, salin semua file bootloder yang disediakan oleh paket Syslinux dari lokasi yang tercantum di atas ke / var/lib/tftpboot dengan mengeluarkan perintah berikut.

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

Langkah 4: Siapkan File Konfigurasi Server PXE

7. Biasanya Server PXE membaca konfigurasinya dari sekelompok file tertentu (file GUID – pertama, MAC file – berikutnya, file Default – terakhir) dihosting di folder bernama pxelinux.cfg, yang harus ditempatkan di direktori yang ditentukan dalam tftp-root pernyataan dari file konfigurasi utama DNSMASQ.

Buat direktori pxelinux.cfg yang diperlukan dan isi dengan file default dengan mengeluarkan perintah berikut.

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

8. Sekarang saatnya mengedit file konfigurasi PXE Server dengan opsi instalasi distribusi Linux yang valid. Perhatikan juga bahwa semua path yang digunakan dalam file ini harus berhubungan dengan direktori /var/lib/tftpboot.

Di bawah ini Anda dapat melihat contoh file konfigurasi yang dapat Anda gunakan, tetapi ubah gambar instalasi (file kernel dan initrd), protokol (FTP, HTTP, HTTPS, NFS) dan IP untuk mencerminkan repositori sumber instalasi jaringan Anda dan jalur yang sesuai.

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

Tambahkan seluruh kutipan berikut ke file.

default menu.c32
prompt 0
timeout 300
ONTIMEOUT local

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

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

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

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

label 4
menu label ^4) Boot from local drive

Seperti yang Anda lihat, gambar boot CentOS 7 (kernel dan initrd) berada di direktori bernama centos7 relatif terhadap /var/lib/tftpboot (pada jalur sistem absolut, ini berarti /var/lib/tftpboot/centos7) dan repositori penginstal dapat dijangkau dengan menggunakan protokol FTP di lokasi jaringan 192.168.1.20/pub – dalam hal ini repo di-host secara lokal karena alamat IP-nya sama dengan alamat server PXE).

Menu label 3 juga menentukan bahwa instalasi klien harus dilakukan dari lokasi jarak jauh melalui VNC (di sini ganti kata sandi VNC dengan kata sandi yang kuat) jika Anda menginstal pada klien tanpa kepala dan menu label 2 ditetapkan sebagai
sumber instalasi cermin Internet resmi CentOS 7 (kasus ini memerlukan koneksi Internet yang tersedia pada klien melalui DHCP dan NAT).

Penting: Seperti yang Anda lihat pada konfigurasi di atas, kami telah menggunakan CentOS 7 untuk tujuan demonstrasi, namun Anda juga dapat menentukan gambar RHEL 7, dan mengikuti seluruh instruksi dan konfigurasi didasarkan pada CentOS 7 saja, jadi berhati-hatilah saat memilih distribusi.

Langkah 5: Tambahkan Gambar Boot CentOS 7 ke Server PXE

9. Untuk langkah ini diperlukan kernel CentOS dan file initrd. Untuk mendapatkan file tersebut, Anda memerlukan Image CentOS 7 DVD ISO. Jadi, lanjutkan dan unduh CentOS DVD Image, masukkan ke dalam drive DVD Anda dan pasang image tersebut ke jalur sistem /mnt dengan mengeluarkan perintah di bawah ini.

Alasan menggunakan DVD dan bukan Minimal CD Image adalah kenyataan bahwa nantinya konten DVD ini akan digunakan untuk membuat
repositori pemasang lokal untuk sumber FTP.

mount -o loop /dev/cdrom  /mnt
ls /mnt

Jika mesin Anda tidak memiliki drive DVD, Anda juga dapat mengunduh CentOS 7 DVD ISO secara lokal menggunakan utilitas wget atau curl dari mirror CentOS dan memasangnya.

wget http://mirrors.xservers.ro/centos/7.0.1406/isos/x86_64/CentOS-7.0-1406-x86_64-DVD.iso
mount -o loop /path/to/centos-dvd.iso  /mnt

10. Setelah konten DVD tersedia, buat direktori centos7 dan salin kernel bootable CentOS 7 dan image initrd dari lokasi pemasangan DVD ke struktur folder centos7.

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

Alasan menggunakan pendekatan ini adalah, nantinya Anda dapat membuat direktori terpisah baru di jalur /var/lib/tftpboot dan menambahkan distribusi Linux lain ke menu PXE tanpa mengacaukan keseluruhan struktur direktori.

Langkah 6: Buat Sumber Instalasi Mirror Lokal CentOS 7

11. Meskipun Anda dapat mengatur Installation Source Mirrors melalui berbagai protokol seperti HTTP, HTTPS atau NFS, untuk panduan ini, saya telah memilih FTP protokol karena sangat andal dan mudah diatur dengan bantuan server vsftpd.

Instal lebih lanjut daemon vsftpd, salin semua konten yang terpasang pada DVD ke jalur server default vsftpd (/var/ftp/pub) – ini bisa memakan waktu cukup lama tergantung pada sumber daya sistem Anda dan tambahkan izin yang dapat dibaca ke jalur ini dengan mengeluarkan perintah berikut.

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

Langkah 7: Mulai dan Aktifkan Daemon di Seluruh Sistem

12. Sekarang konfigurasi server PXE akhirnya selesai, mulai server DNSMASQ dan VSFTPD, verifikasi statusnya dan aktifkan di seluruh sistem, untuk secara otomatis dimulai setelah setiap sistem reboot, dengan menjalankan perintah di bawah ini.

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

Langkah 8: Buka Firewall dan Uji Sumber Instalasi FTP

13. Untuk mendapatkan daftar semua port yang perlu dibuka di Firewall Anda agar mesin klien dapat menjangkau dan melakukan booting dari server PXE, jalankan perintah netstat dan tambahkan CentOS 7 Aturan Firewalld sesuai dengan port mendengarkan dnsmasq dan vsftpd.

netstat -tulpn
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 menguji jalur jaringan Sumber Instalasi FTP, buka browser secara lokal (lynx harus melakukannya) atau di komputer lain dan ketik Alamat IP server PXE Anda dengan
Protokol FTP diikuti dengan lokasi jaringan /pub pada URL yang diajukan dan hasilnya akan seperti yang ditunjukkan pada gambar di bawah.

ftp://192.168.1.20/pub

15. Untuk men-debug server PXE untuk mengetahui adanya kesalahan konfigurasi atau informasi dan diagnostik lainnya dalam mode langsung, jalankan perintah berikut.

tailf /var/log/messages

16. Terakhir, langkah terakhir yang perlu Anda lakukan adalah melepas DVD CentOS 7 dan menghapus media fisiknya.

umount /mnt

Langkah 9: Konfigurasikan Klien untuk Boot dari Jaringan

17. Sekarang klien Anda dapat melakukan booting dan menginstal CentOS 7 pada mesin mereka dengan mengonfigurasi Network Boot sebagai perangkat boot utama dari BIOS sistem mereka atau dengan menekan tombol tertentu selama Pengoperasian BIOS POST seperti yang ditentukan dalam manual motherboard.

Untuk memilih boot jaringan. Setelah prompt PXE pertama muncul, tekan tombol F8 untuk masuk ke presentasi dan kemudian tekan tombol Enter untuk melanjutkan ke menu PXE.

18. Setelah Anda mencapai menu PXE, pilih jenis instalasi CentOS 7 Anda, tekan tombol Enter dan lanjutkan prosedur instalasi dengan cara yang sama seperti Anda menginstalnya dari lokal perangkat boot media.

Perlu diketahui bahwa penggunaan varian 2 dari menu ini memerlukan koneksi Internet aktif pada klien target. Juga, di bawah
screenshot anda bisa melihat contoh instalasi remote client melalui VNC.

Itu saja untuk menyiapkan Server PXE minimal di CentOS 7. Pada artikel saya berikutnya dari seri ini, saya akan membahas masalah lain mengenai konfigurasi server PXE ini seperti cara mengatur instalasi otomatis CentOS 7 menggunakan file Kickstart dan menambahkan distribusi Linux lainnya ke menu PXE – Server Ubuntu dan Debian 7.