這里是工作中對一個pxe裝機需求測試記錄,所有操作都是在筆記本電腦上VMware虛擬機中實現,內容僅供參考。
環境介紹:
1、PXE測試服務器為一台1c2g的VMware虛擬機,網絡模式為NAT模式,操作系統為CentOS7.9,IP地址為192.168.1.11。
2、需要准備一個ubuntu-14.04.6-server-amd64.iso的ISO鏡像包。
3、PXE服務其實是通過http/ftp、TFTP、DHCP服務來實現,這里安裝在一台服務器上,可以分開部署。
4、准備一個ubuntu的網絡引導器netboot.tar.gz,注意版本問題。
網絡安裝器下載地址:http://cdimage.ubuntu.com/netboot/
PXE安裝ubuntu填坑:
1、 ubuntu的PXE安裝它會要求ubuntu鏡像的版本、網絡引導器版本和生成ks文件的系統版本必須一致,不然就是各種問題。所以上面介紹環境,我寫清楚了鏡像文件的全名。
2、ubuntu版本過高,安裝kickstart可能會出現依賴問題,所以這里選擇14版本進行安裝(18版本測試了也沒問題)。
3、如果需要無人值守安裝系統,必須要划分swap分區。
搭建PXE服務器
1、安裝httpd,pxe裝機需要用到httpd服務的功能。這里使用httpd,ftp跟httpd幾乎一樣。
yum -y install httpd
3、創建一個存放系統鏡像文件目錄,然后把鏡像文件cp到該目錄中。
mkdir /var/www/html/ubuntu cp -a /mnt/cdrom/* /var/www/html/ubuntu
4、啟動httpd,設置開機啟動。
systemctl start httpd systemctl enable httpd
5、安裝TFTP服務,修改配置文件並啟動。這里修改一下tftp的根目錄,因為還需要測試centos系統,這里做一個區分,如果只安裝一個系統,可以不用修改。
yum -y install tftp-server vim /etc/xinetd.d/tftp #將disable=yes 修改為 disable=no #將 server_args = -s /var/lib/tftpboot 修改為 server_args = -s /var/lib/tftpboot/ubuntu -c vim /usr/lib/systemd/system/tftpd.service #將 ExecStart=/usr/sbin/in.tftpd -s /var/lib/tftpboot 修改為 ExecStart=/usr/sbin/in.tftpd -s /var/lib/tftpboot/ubuntu systemctl daemon-reload systemctl restart tftp systemctl enable tftp
6、把准備好的ubuntu網絡引導器解壓到tftp根目錄下
tar zxf netboot.tar.gz -C /var/lib/tftpboot/ubuntu
7、修改啟動菜單文件,將timeout的值從0改為1,是為了讓ubuntu安裝界面出現會超時,自動選擇安裝。
vim /var/lib/tftpboot/ubuntu/pxelinux.cfg/default #將 timeout 0 修改為 timeout 1
8、修改網絡引導器中的txt.cfg文件
vim /var/lib/tftpboot/ubuntu/ubuntu-installer/amd64/boot-screens/txt.cfg #在append后添加以下內容 ks=http://192.168.1.11/ubuntu/ks.cfg preseed/url=http://192.168.1.11/ubuntu/ubuntu-server.seed netcfg/get_nameservers=192.168.1.11
修改后文件內容如下:
9、掛載ISO鏡像,把鏡像文件cp到/var/www/html/ubuntu目錄下。
mount /dev/cdrom /mnt/cdrom
cp -a /mnt/cdrom/* /var/www/html/ubuntu/
10、復制鏡像文件中的ubuntu-server.seed文件到/var/www/html/ubuntu目錄下並添加配置。
cp /var/www/html/ubuntu/preseed/ubuntu-server.seed /var/www/html/ubuntu/ vim /var/www/html/ubuntu/ubuntu-server.seed #在文件最后加入以下配置 d-i live-installer/net-image string http://192.168.1.11/ubuntu/install/filesystem.squashfs d-i pkgsel/include string openssh-server
11、安裝DHCP服務器,並且添加配置,啟動。客戶端會請求到dhcp服務器,dhcp服務器會提供給客戶端IP信息、tftp信息、pxe引導文件信息等。所以,在客戶端網絡環境中,不要配置其他的dhcp服務器了。
yum -y install dhcp cat <<EOF >> /etc/dhcp/dhcpd.conf subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.100 192.168.1.200; #dhcp服務為客戶端分配的ip范圍 option domain-name-servers 8.8.8.8; #dns option domain-name "internal.example.org"; option routers 192.168.1.1; #網關 option broadcast-address 192.168.1.255; #廣播 default-lease-time 21600; #租約時間,默認值是600,單位是秒 max-lease-time 43200; #最大租約時間 next-server 192.168.1.11; #指定TFTP服務器的地址 filename "pxelinux.0"; #指定PXE引導程序的文件名 } EOF systemctl start dhcpd systemctl enable dhcpd
12、准備ks.cfg文件(test用戶密碼是1q2w3e4r)。
cat <<EOF > /var/www/html/ubuntu/ks.cfg #Generated by Kickstart Configurator #platform=x86 #System language lang en_US #Language modules to install langsupport en_US #System keyboard keyboard us #System mouse mouse #System timezone timezone America/New_York #Root password rootpw --disabled #Initial user user test --fullname "test" --iscrypted --password $1$923Ky0S9$dRr5NVm9eitEibM3EE1a/. #Reboot after installation reboot #Use text mode install text #Install OS instead of upgrade install #Use Web installation url --url http://192.168.1.11/ubuntu/ #System bootloader configuration bootloader --location=mbr #Clear the Master Boot Record zerombr yes #Partition clearing information clearpart --all --initlabel #Disk partitioning information part /boot --fstype ext4 --size 200 part swap --size 2048 part / --fstype ext4 --size 15800 #System authorization infomation auth --useshadow --enablemd5 #Network information network --bootproto=dhcp --device=eth0 #Firewall configuration firewall --disabled #Do not configure the X Window System skipx EOF
圖形界面配置ks文件這里就不做介紹了,跟centos的一樣,先安裝kickstart,然后用軟件做配置后保存即可。可以參考:PXE裝機服務搭建(安裝CentOS7)