Tìm hiểu về PXE và triển khai PXE với Cobbler Server
Thịnh Văn Hạnh 01/08/2020 2021 Lượt xem Chia sẻ bài viết
I. Tìm hiểu về PXE.
- PXE là gì?
PXE (preboot execution environment) được phát triển bởi một số các nhà sản xuất phần mềm và phần cứng lớn. Được thiết kế ban đầu bởi Intel, cùng với sự tham gia của các nhà sản xuất như HP, 3Com, Dell, Phoenix Technologies. PXE làm việc với NIC – Network interface controller trong client, biến NIC thành một boot device. PXE boot hệ điều hành cho các client từ network bằng cách lấy một boot image từ server. File này có thể là một OS hay pre-OS cho client. Bởi PXE làm việc cùng với NIC nên yêu cầu NIC phải có PXE-enable. PXE bao gồm 2 thành phần: PXE client và PXE server.
+ PXE Server là thành phần triển khai chạy trên một thiết bị nào đó trong mạng LAN, được hỗ trợ các giao thức TFTP, DHCP. DHCP cấp phát địa chỉ IP để các máy client có thể liên lạc với các máy khác và với TFTP server để lấy các file boot và file cấu hình cần thiết. TFTP cung cấp dịch vụ truyền các file boot và file cấu hình cần thiết cho client.
+ PXE client nằm trên cùng dải mạng với PXE server, gồm các server, PC hầu hết đều cho phép khởi động máy tính qua mạng với PXE boot code. Các mainboard có card mạng onboard cũng hầu hết có thành phần này.
2. Cơ chế hoạt động của PXE.
Bước 1: Máy client được khởi động NIC của client gửi đi bản tin broadcast DHCPDISCOVER dùng giao thức UDP đến cổng 67.
Bước 2: DHCP server nhận được bản tin của client và gửi lại bản tin DHCPOFFER các thông tin cần thiết cho client.
Bước 3: Khi client nhận được các thông tin này, client gửi DHCPREQUEST đến máy chủ DHCP để nhận thông tin boot image.
Bước 4: TFTP server gửi lại boot image (pxelinux.0) từ thư mục tftpboot và client sẽ xử lý.
Bước 5: Mặc định boot image tìm được thư mục pxelinux.cfg trên TFTP server để lấy các file cấu hình.
Các bước còn lại client tải tất cả các file cài đặt cần thiết (filesystem, kickstart, …) và tự động cài đặt.
II. Triển khai PXE server sử dụng cobbler.
– Trong cobbler là một gói các công cụ cài đặt một cách dễ dàng cho phép triển khai một PXE server với đầy đủ các thành phần bắt buộc. Chức năng chính hỗ trợ cài đặt tự động các bản hệ điều hành linux thông quan mạng, sử dụng kickstart file để tự động hóa các bước cài đặt, dễ dàng hơn trong việc cài đặt số lượng lớn hệ điều hành linux với những cấu hình khác nhau.
– Trong cobbler có các thành phần chính:
+ Kickstart file: Là file quy định, định nghĩa nên các bước cho việc cài đặt các distro linux do có file này mà toàn bộ quá trình cài đặt sẽ được tự hóa hoàn toàn (chọn ngôn ngữ, timezone, phân vùng…).
+ TFTP, FTP: Là các giao thức mà cobbler sử dụng để truyển tải các file cài đặt từ cobbler server đến các client để cài linux (hiểu đơn giản là sử dụng giao thức truyền file trong linux để đẩy các bản cài đặt xuống client).
+ DHCP server: Đáp ứng cho việc cài đặt qua môi trường mạng client phải kết nối được đến server và được cấp 1 địa chỉ IP. Quá trình cấp địa chỉ này được thực hiện bởi DHCP server trải qua các bước cấp DHCP thông thường.
+ DNS server : Giúp thể gán địa chỉ IP với 1 tên miền (là thành phần không bắt buộc).
+ Web server: Cobbler cung cấp giao diện web cho phép người quản trị thông qua đó, quản lý các profile cũng như các máy trạm được cài đặt.
III. Hướng dẫn cài đặt cobbler server trên Centos 7
- Mô hình triển khai:
2. Chuẩn bị:
- Cấu hình server cobbler:
+ CPU: 4 cores
+ RAM: 4 GB
+ Disk: 50GB
+ OS: CentOS7
+ NIC: 2 NIC (em1, em2)
- Cấu hình ip:
Em1: 172.16.2.10/24
Em2: 192.168.2.10/24
3. Cài đặt và cấu hình cobbler server
Bước 1: Cài các package cần thiết cho cobbler:
#yum install cobbler cobbler-web dnsmasq syslinux xinetd bind bind-utils dhcp debmirror pykickstart fence-agents-all -y
+ cobbler, cobbler-web: Các package cài đặt chạy service cobbler và giao diện web của cobbler.
+ dnsmasq, bind, bind-utils, dhcp: Các package chạy dịch vụ quản lý DNS và quản lý DHCP cho các máy client boot OS từ cobbler.
+ syslinux: Chương trình bootloader và tiện ích cho phép đẩy vào client cho phép client boot OS qua mạng.
+ xinetd: Tạo socket kết nối với máy client. Được sử dụng để quản lý và tạo socket cho TFTP server truyền file boot cho client.
+ debmirror: Package cài đặt cho phép tạo một mirror server chứa các gói phần mềm cài đặt của các distro trên một server local.
+ pykickstart: thư viện python cho phép đọc và chỉnh sửa nội dung file kickstart, hỗ trợ cobbler chỉnh sửa file kickstart thông qua giao diện web.
Bước 2: Khởi động services
#systemctl start cobblerd #systemctl enable cobblerd #systemctl start httpd #systemctl enable httpd
Bước 3: Cấu hình cobbler server:
- Mã hóa password sử dụng openssl:
# openssl passwd -1
- Sửa file /etc/cobbler/settings với các thông số default_password_crypted (dòng 101) với password đã được mã hóa vừa sinh ra ở trên và cập nhật các thông số của DHCP, DNS, PXE từ 0 thành 1.
#sed -i 's/manage_dhcp: 0/manage_dhcp: 1/g' /etc/cobbler/settings #sed -i 's/manage_dns: 0/manage_dns: 1/g' /etc/cobbler/settings
- Kích hoạt cho phép boot các file cấu hình cài đặt OS qua card mạng
#sed -i 's/pxe_just_once: 0/pxe_just_once: 1/g' /etc/cobbler/settings
- Chỉnh sửa IP của TFTP server (next_server) và IP của Cobbler (server).
#sed -i 's/next_server: 127.0.0.1/next_server: 192.168.2.10/g' /etc/cobbler/settings #sed -i 's/server: 127.0.0.1/server: 192.168.2.10/g' /etc/cobbler/settings
(“server” là địa chỉ IP của cobbler server, “next_server” là địa chỉ IP của TFTP server mà các file boot (kernel, initrd) được lấy về)
- Chỉnh sửa file cấu hình DHCP và DNSMASQ:
Cấu hình DHCP cho phép Cobbler cấp phát IP cho Client và thông tin về các file pxelinux.0 gửi về cho client, cấu hình DHCP sửa trong file /etc/cobbler/dhcp.template như sau: cho phép cấp IP trong dải từ 192.168.2.20 tới 192.168.2.40.
- Cập nhật dải địa chỉ IP được cấp phát cho client trong file /etc/cobbler/dnsmasq.template
dhcp-range=192.168.2.20,192.168.2.40
- Cho phép tính năng xinetd hoạt động. Sửa disable = yes thành disable = no trong file /etc/xinetd.d/tftp
- Vô hiệu các dòng @dists=”sid”; và @arches=”i386″; trong file /etc/debmirror.conf để hỗ trợ các distro Debian.
- Khởi động lại một số services
#systemctl enable rsyncd.service #systemctl restart rsyncd.service #systemctl restart cobblerd #systemctl restart xinetd #systemctl enable xinetd #cobbler get-loaders #cobbler check #cobbler sync #systemctl enable dhcpd
- Truy cập vào giao diện Web cobbler với thông tin truy cập mặc định user/pass = cobbler/cobbler
https://ip_cobbler_server/cobbler_web
Như vậy đã hoàn thành các bước triển khai, cài đặt, cấu hình cobbler server trên Centos 7. Chúc các bạn thành công.
hoangtd