LPIC-System Administrator - Cài đặt Preboot eXecution Environment (PXE) để deployPop!_OS 19.10 qua LAN trên Centos 8


Preboot eXecution Environment (PXE) là gì ? Nếu nói theo nguyên bản tiếng anh là : The Preboot Execution Environment (PXE) is an industry standard client/server interface that allows networked computers that are not yet loaded with an operating system to be configured and booted remotely by an administrator.






LPIC-System Administrator - Cài đặt Preboot eXecution Environment (PXE) để deploy linux qua LAN trên Centos 8



Nói đơn giản nôm na là môi trường thực thi tương tác giữa server và client, trong quá trình boot của client sẽ load hệ điều hành từ máy chủ , và hệ điều hành này đã cài đặt sẵn bởi quản trị viên. fuck :)


OK, giờ ví dụ thực tiễn nhé,  ví dụ một công ty khi cài đặt OS hay gì đó, thì cần có một OS chính gốc và sẽ dùng nó để cải đặt, nào là Server, nào là client ... Như trên windowns thì link chính gốc của Microsoft và được certificate đàng hoàn, và như luật bất thành văn yêu cầu phải dùng đúng. Không phải download đại đại về là sai, chơi vậy hơi đâu não nhưng .... :)


OK, như trên windowns thì mình dùng Microsoft Deployment Toolkit (MDT) và giờ mình sẽ chuyển nó sang Linux, trên môi trường Centos 8 và OS PopOS 19.10, và OS này có giả lập custom theo yêu cầu có thể tham khảo bài Hướng dẫn cài đặt nhanh Systemback và tạo file linux iso trên Pop!_OS 19.10.


Mục đích đưa ra là có một OS PopOS 19.10 mang tính đặc thù riêng, mọi wks cần phải dùng nó để cài đặt, yêu cầu cài xong là dùng không đụng chạm bất cứ thứ gì bên ngoài. Và là một System Admin bạn cấu hình sao để team của bạn hỗ trợ bạn trên WKS chỉ vác mạng không lên cafe cà pháo xong vào chọt chọt 1 tiếng xong 4 5 máy :) nhưng vẫn đáp ứng được công việc mà không cần mang theo bất cứ thứ gì như USB, CD, ổ cứng :) mà vẫn đáp ứng yêu cầu của bạn.


Đầu tiên cần chuần bị 1 con server Centos 8, yêu cầu trong hệ thống mạng LAN phải đáp ứng tốt như GB, Bandwidth ...

Đây là quá trình mô phỏng nên trên Centos 8 này sẽ bao gồm PXE và DHCP chung, nên phân nhỏ server ra để hoạt động trơn tru và hiểu quả hơn, tốc độ network LAN cũng là phần quan trọng vì client sẽ boot qua mạng LAN.

Cài đặt những gói cần thiết sau :

Nếu muốn cài đơn lẻ từng dịch vụ thì cài dhcp, dns ... thì có thể cài các dịch vụ đơn lẻ, ở đây gọp chung những cái cần thiết chính và dùng

Dnsmasq : là một công cụ chuyển tiếp DNS nhẹ, dễ cấu hình, được thiết kế để cung cấp các dịch vụ DNS (và tùy chọn DHCP và TFTP) cho một mạng quy mô nhỏ. Nó có thể phục vụ tên của các máy cục bộ không có trong DNS toàn cầu.


Syslinux : là một bộ các trình tải khởi động bản ghi khởi động chính nhẹ để khởi động các máy tính tương thích với PC của IBM với nhân Linux. Được phát triển chủ yếu bởi H. Peter Anvin, gói SYSLINUX bao gồm một số hệ thống riêng biệt được sử dụng cho các mục đích khác nhau, bao gồm ISOLINUX, PXELINUX và EXTLINUX


Tftp-server : để chuyển tập tin mạng đáng tin cậy và an toàn

Server IP : 192.168.1.50

Bắt đầu quất thôi : Chỉnh hostname pxe.domain.local  tiếp cài các món sau.


[root@pxe ~]# yum install dnsmasq syslinux tftp-server nfs-utils -y



LPIC-System Administrator - Cài đặt Preboot eXecution Environment (PXE) để deploy linux qua LAN trên Centos 8



Chỉnh sửa các file :


dnsmasq : tham khảo link sau để hiểu rõ hơn, đây là config gợi ý nhưng chúng ta chỉ cần sử dụng vài option.


https://github.com/imp/dnsmasq/blob/master/dnsmasq.conf.example


Cứ dựa theo file mẫu trên xem trước và vào edit cho nhanh và phù hợp


vi /etc/dnsmasq.conf


interface=enp0s3
domain=pxe.domain.local
dhcp-range= 192.168.1.200,192.168.1.210,255.255.255.0,12h
dhcp-option=3,192.168.1.1
dhcp-boot=pxelinux.0,192.168.1.50
pxe-prompt="Press F12 for menu.", 30
pxe-service=x86PC, "Boot from server PXE with IP : 192.168.1.50",pxelinux
enable-tftp
tftp-root=/var/lib/tftpboot



LPIC-System Administrator - Cài đặt Preboot eXecution Environment (PXE) để deploy linux qua LAN trên Centos 8



LPIC-System Administrator - Cài đặt Preboot eXecution Environment (PXE) để deploy linux qua LAN trên Centos 8


systemctl enable dnsmasq.service


systemctl start dnsmasq.service



Như trên sau khi disable firewalld đi hoặc open port trên server đi là đã có DHCP ngon lành rồi, tiếp theo xử mục sau


SYSLINUX : nãy đã cài rồi giờ làm giao diện boot thôi, chú ý giữa syslinux vs grub nhé.


Vậy cài xong thì làm gì với nó, sau khi cài sẽ có đủ đồ nghề để làm menu boot khá là tiện, hiện tại không cần quan tâm nó làm gì, chỉ nhớ đường dẫn của nó là ok rồi, đợi lát tính sau


LPIC-System Administrator - Cài đặt Preboot eXecution Environment (PXE) để deploy linux qua LAN trên Centos 8



tftp-server : Như ở trên, gói này đã cài đặt ok rồi, giờ tiến hành config cho nó, giờ làm gì cho nó đây.


Mục đích của nó khi boot vào nó sẽ nhảy vào ngay thằng này vì ở trên dnsmasq đã chỉ định nó là tftp root. Giờ thì quăng hết mọi cái của syslinux vào đây và ta làm menu theo ý mình.

/var/lib/tftpboot/


LPIC-System Administrator - Cài đặt Preboot eXecution Environment (PXE) để deploy linux qua LAN trên Centos 8



NFS: Giờ đến lượt config NFS để lưu trữ OS và client kéo về cài đặt. Tạo thư mục lưu trữ và kéo source vào.


mkdir -p /var/nfs/popos


mount -o loop /dev/cdrom /mnt/


cp -r /mnt/* /var/nfs/popos/


chmod -R 775 /var/nfs/popos/



LPIC-System Administrator - Cài đặt Preboot eXecution Environment (PXE) để deploy linux qua LAN trên Centos 8



Tiếp theo copy thư mục casper vào thư mục tftpboot , với mục đích mồi để OS boot.


cp -r /mnt/casper/ /var/lib/tftpboot/



LPIC-System Administrator - Cài đặt Preboot eXecution Environment (PXE) để deploy linux qua LAN trên Centos 8


Mọi thứ đều có đầy đủ rồi là giờ config menu boot nữa là xong.


mkdir -p /var/lib/tftpboot/pxelinux.cfg

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

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


LPIC-System Administrator - Cài đặt Preboot eXecution Environment (PXE) để deploy linux qua LAN trên Centos 8


Tạo menu boot trỏ về nfs, để  sau khi chạy boot mồi lên nó sẽ tự nhận ra OS và cài đặt. Tại sao lại biết cài đặt này để mà chạy, rất đơn giản là ngoài những cái chính yêu cầu mount nfs ra thì tham khảo file config có sẵn ở file iso OS :)

Hầu như syslinux nó làm menu ngon lành hết rồi, lỗi ra mà dùng thôi. Tuyệt vời.


LPIC-System Administrator - Cài đặt Preboot eXecution Environment (PXE) để deploy linux qua LAN trên Centos 8



Tiếp theo cấu hình thêm cho nfs như sau và trước khi làm start service lên nhé


systemctl enable tftp

systemctl start tftp


vi /etc/exports


/var/nfs/popos/ *(rw,no_root_squash,no_all_squash)


[root@pxe ~]#exportfs -a



OK và cuối cũng check xem nfs đã ok chưa, ah nhìn thấy đúng thư mục chứ OS và mọi network có thể acccess, có thể nhập network cho hợp lý cũng ok, đây * cho nhanh.


LPIC-System Administrator - Cài đặt Preboot eXecution Environment (PXE) để deploy linux qua LAN trên Centos 8


Mọi thứ đã ngon lành rồi


LPIC-System Administrator - Cài đặt Preboot eXecution Environment (PXE) để deploy linux qua LAN trên Centos 8


Cuối cùng : Đem một wks cho nó boot qua network, sau khi nhận ip từ dhcp xong là mọi thứ sẽ chạy ok hết.


LPIC-System Administrator - Cài đặt Preboot eXecution Environment (PXE) để deploy linux qua LAN trên Centos 8


LPIC-System Administrator - Cài đặt Preboot eXecution Environment (PXE) để deploy linux qua LAN trên Centos 8




LPIC-System Administrator - Cài đặt Preboot eXecution Environment (PXE) để deploy linux qua LAN trên Centos 8




LPIC-System Administrator - Cài đặt Preboot eXecution Environment (PXE) để deploy linux qua LAN trên Centos 8






Nhãn: