Server PXE (Preboot eXecution Environment) memungkinkan instalasi OS tanpa pengawasan atau otomatis melalui Jaringan. Manfaat utama pxe adalah kita tidak memerlukan drive yang dapat di-boot untuk mem-boot OS (Sistem operasi) dan kita tidak perlu membakar file ISO apa pun ke dalam DVD atau perangkat usb.
Setelah server PXE dikonfigurasi, kita dapat menginstal ratusan Sistem secara bersamaan melalui jaringan. Karena ini bekerja pada arsitektur Client-Server, untuk mendapatkan instalasi OS pada klien, boot klien melalui opsi PXE.
Pada artikel ini saya akan mengatur Server PXE pada CentOS 7.x dan kemudian akan mencoba menginstal OS pada klien menggunakan boot pxe.
Di bawah ini adalah rincian Setup saya :
- IP Server =172.168.1.11
- Nama host =pxe.example.com
- OS =CentOS 7.x
- SELinux =diaktifkan
- Firewall =diaktifkan
Langkah:1 Instal paket yang diperlukan untuk Pengaturan PXE
Untuk menginstal dan mengkonfigurasi server pxe pada centos 7.x kita memerlukan paket-paket berikut “dhcp, tftp-server, ftp server(vsftpd), xinted”. Buka terminal eksekusi di bawah perintah :
[[email protected] ~]# yum install dhcp tftp tftp-server syslinux vsftpd xinetd
Langkah:2 Konfigurasi Server DHCP untuk PXE
Saat kita menginstal paket dhcp maka contoh file konfigurasi server dhcp dibuat di “/usr/share/doc/dhcp*/dhcpd.conf.example “, meskipun file konfigurasi dhcp ada di ‘/etc/dhcp/dhcpd.conf '.
Salin baris berikut ke dalam file ‘/etc/dhcp/dhcpd.conf’, ganti subnet ip dan detail lainnya sesuai lingkungan Anda.
[[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"; }
Langkah:3 Edit dan Konfigurasi server tftp (/etc/xinetd.d/tftp)
TFTP (Trivial File Transfer Protocol) digunakan untuk mentransfer file dari server data ke kliennya tanpa otentikasi apa pun. Dalam hal penyiapan server PXE, tftp digunakan untuk memuat bootstrap. Untuk mengonfigurasi server tftp, edit file konfigurasinya ‘ /etc/xinetd.d/tftp ', ubah parameter 'disable =yes' menjadi 'disable =no' dan biarkan parameter lainnya apa adanya.
[[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 }
Semua file terkait boot jaringan harus ditempatkan di direktori root tftp “/var/lib/tftpboot ”
Jalankan perintah berikut untuk menyalin file boot jaringan yang diperlukan di '/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] ~]#
Langkah:4 Pasang file ISO CentOS 7.x dan salin isinya ke server ftp lokal
Dalam kasus saya, saya telah mengunduh file iso CentOS 7.x di Server PXE saya. Jalankan perintah di bawah untuk me-mount file iso dan kemudian salin isinya di direktori server ftp ‘/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/
Salin file Kernel (vmlimz) dan file initrd dari file iso yang di-mount ke ‘/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] ~]#
Sekarang Anda dapat meng-unmount file iso menggunakan perintah 'umount'
[[email protected] ~]# umount /mnt/ [[email protected] ~]#
Langkah:5 Buat file menu kickStart &PXE.
Sebelum membuat file kickstart, pertama-tama buat kata sandi root dalam string terenkripsi karena kita akan menggunakan string kata sandi terenkripsi itu di file kickstart.
[[email protected] ~]# openssl passwd -1 [email protected]# $1$e2wrcGGX$tZPQKPsXVhNmbiGg53MN41 [[email protected] ~]#
File kickstart default sistem ditempatkan di bawah /root dengan nama 'anaconda-ks.cfg '. Kami akan membuat kickstart baru di bawah folder /var/ftp/pub dengan nama ‘centos7.cfg '
Salin konten berikut ke file kickstart baru. Harap ubah file kickstart sesuai kebutuhan Anda.
[[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
Buat file menu PXE (/var/lib/tftpboot/pxelinux.cfg/default ), salin konten berikut ke dalam file menu 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
Langkah:6 Mulai dan aktifkan layanan xinetd, dhcp, dan vsftpd.
Gunakan perintah di bawah untuk memulai dan mengaktifkan xinetd, dhcp, dan 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] ~]#
Jika SELinux diaktifkan, maka setel aturan selinux berikut untuk server ftp.
[[email protected] ~]# setsebool -P allow_ftpd_full_access 1 [[email protected] ~]#
Buka port di firewall OS menggunakan perintah firewall-cmd berikut
[[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] ~]#
Hingga saat ini, instalasi dan konfigurasi server PXE telah selesai sekarang.
Langkah:7 Boot klien dengan opsi boot pxe.
Seperti dapat dilihat di atas bahwa instalasi telah dimulai dengan interaksi manusia apa pun. Saya harap Anda menikmati instalasi dan konfigurasi server PXE. Silakan bagikan umpan balik dan komentar Anda.