Cấu hình máy chủ cài đặt tự động cho CentOS bằng PXE và Kickstart

Giải pháp cài đặt hệ thống không cần can thiệp thủ công dựa trên bộ dịch vụ PXE (Preboot Execution Environment), DHCP, TFTP, FTP và cấu hình Kickstart. Mô hình này đặc biệt phù hợp trong môi trường cần triển khai nhiều máy ảo hoặc thiết bị vật lý với hệ điều hành CentOS một cách nhanh chóng và đồng nhất.

Mô hình thử nghiệm

  • youxi1: Máy chủ CentOS 7 với hai card mạng — một kết nối cầu nối (bridge) để truy cập Internet (192.168.1.6), một kết nối vùng LAN riêng (LAN1) làm mạng nội bộ phục vụ PXE.
  • youxi2: Máy khách CentOS 7, chỉ kết nối vào cùng mạng LAN1 để kiểm tra dịch vụ.
  • youxi3: Máy ảo mới, sẽ được cài đặt tự động qua mạng LAN1.

Nguyên lý hoạt động

Quá trình khởi động và cài đặt tự động gồm năm thành phần chính:

  1. DHCP Server: Cấp địa chỉ IP và thông tin khởi động (như vị trí TFTP server và file boot) cho client có hỗ trợ PXE.
  2. TFTP Server: Phục vụ các tệp khởi động ban đầu như pxelinux.0, nhân kernel (vmlinuz) và initramfs (initrd.img).
  3. FTP Server: Lưu trữ gói cài đặt ISO và tệp cấu hình ks.cfg.
  4. Kickstart: Tập tin cấu hình tự động hóa toàn bộ quy trình cài đặt — từ phân vùng đĩa đến lựa chọn gói phần mềm.
  5. PXE Client: Phần firmware tích hợp sẵn trên card mạng, cho phép máy tính khởi động từ mạng thay vì ổ cứng hoặc CD/DVD.

Cài đặt các dịch vụ nền tảng

1. Thiết lập FTP server (vsftpd)

Trên youxi1, cài đặt và kích hoạt vsftpd:

[root@youxi1 ~]# yum -y install vsftpd
[root@youxi1 ~]# systemctl enable --now vsftpd
[root@youxi1 ~]# mount /dev/sr0 /var/ftp/pub/

Lưu ý: Đảm bảo thư mục /var/ftp/pub/ chứa nội dung của đĩa cài CentOS (ISO đã mount).

2. Thiết lập TFTP server (xinetd + tftp-server)

Cài đặt và cấu hình TFTP để phục vụ tệp khởi động:

[root@youxi1 ~]# yum -y install tftp-server xinetd syslinux
[root@youxi1 ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@youxi1 ~]# cp /var/ftp/pub/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/
[root@youxi1 ~]# mkdir -p /var/lib/tftpboot/pxelinux.cfg
[root@youxi1 ~]# cp /var/ftp/pub/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
[root@youxi1 ~]# chmod 644 /var/lib/tftpboot/pxelinux.cfg/default

Chỉnh sửa /etc/xinetd.d/tftp để bật dịch vụ:

disable = no
server_args = -s /var/lib/tftpboot

Kích hoạt xinetd:

[root@youxi1 ~]# systemctl enable --now xinetd

3. Thiết lập DHCP server

Thêm card mạng thứ hai trên youxi1 với cấu hình tĩnh:

IPADDR="192.168.2.6"
NETMASK="255.255.255.0"
ONBOOT="yes"

Cài đặt và cấu hình DHCP:

[root@youxi1 ~]# yum -y install dhcp

Tạo tập tin /etc/dhcp/dhcpd.conf:

subnet 192.168.2.0 netmask 255.255.255.0 {
  range 192.168.2.100 192.168.2.200;
  option routers 192.168.2.1;
  option domain-name-servers 192.168.2.6;
  next-server 192.168.2.6;
  filename "pxelinux.0";
}

Kích hoạt dịch vụ:

[root@youxi1 ~]# systemctl enable --now dhcpd

4. Tạo tệp cấu hình Kickstart

Cài đặt công cụ đồ họa:

[root@youxi1 ~]# yum -y install system-config-kickstart

Thiết lập kho lưu trữ cục bộ tại /var/ftp/pub, sau đó chạy:

[root@youxi1 ~]# LANG=en_US.UTF-8 system-config-kickstart

Trong giao diện, thiết lập:

  • Installation Method: Chọn "Use network installation" → URL: ftp://192.168.2.6/pub
  • Partitioning: Tự động phân vùng hoặc tùy chỉnh theo nhu cầu.
  • Firewall & SELinux: Vô hiệu hóa SELinux và cấu hình tường lửa nếu cần.
  • Package Selection: Chọn "Customize now" để thêm các nhóm gói mở rộng.

Lưu tệp dưới dạng /var/ftp/ks.cfg (đường dẫn phải khớp với tham số inst.ks= trong menu PXE).

5. Cập nhật menu khởi động PXE

Chỉnh sửa /var/lib/tftpboot/pxelinux.cfg/default:

default linux
timeout 600

label linux
  menu label ^Install CentOS 7 (Automated)
  kernel vmlinuz
  append initrd=initrd.img inst.ks=ftp://192.168.2.6/ks.cfg inst.repo=ftp://192.168.2.6/pub

Kiểm tra dịch vụ

Trên youxi2, thực hiện lần lượt:

  • Đặt BOOTPROTO=dhcp và khởi động lại mạng → xác nhận nhận IP từ DHCP.
  • Kết nối tới FTP: lftp 192.168.2.6 → kiểm tra thư mục pub.
  • Tải tệp kernel qua TFTP: tftp 192.168.2.6 -c get vmlinuz.

Triển khai máy ảo mới

Tạo youxi3 với các thông số:

  • Mạng: Kết nối vào LAN1 (cùng dải 192.168.2.0/24).
  • Bộ nhớ: Ít nhất 2 GB RAM (1 GB gây lỗi khởi tạo initramfs).
  • Không gắn bất kỳ đĩa ảo nào.
  • Ưu tiên khởi động từ mạng (Network Boot/PXE) trong BIOS/UEFI.

Sau khi hoàn tất cài đặt, điều chỉnh thứ tự khởi động để ưu tiên ổ cứng nhằm tránh lặp lại quá trình.

Thẻ: CentOS pxe kickstart tftp dhcp

Đăng vào ngày 2 tháng 6 lúc 19:03