這里是工作中對一個pxe裝機需求測試記錄,所有操作都是在筆記本電腦上VMware虛擬機中實現,內容僅供參考。
環境介紹:
1、PXE測試服務器為一台1c2g的VMware虛擬機,網絡模式為NAT模式,操作系統為CentOS7.9,IP地址為192.168.1.11。
2、需要准備一個CentOS7.9的ISO鏡像包。
3、PXE服務其實是通過http/ftp、TFTP、DHCP服務來實現,這里安裝在一台服務器上,可以分開部署。
搭建PXE服務器
1、配置本地yum源,這里不做介紹,可以參考:“yum本地源配置”。這里我們將本地源的掛載目錄配置為:/mnt/cdrom
它主要的作用是用來安裝軟件和提供遠程服務器需要的系統文件。
2、安裝httpd,pxe裝機需要用到httpd服務的功能。這里使用httpd,ftp跟httpd幾乎一樣。
yum -y install httpd
3、創建一個存放系統鏡像文件目錄,然后把鏡像文件cp到該目錄中。
mkdir /var/www/html/centos7
cp -a /mnt/cdrom/* /var/www/html/centos7/
4、啟動httpd,設置開機啟動。
systemctl start httpd
systemctl enable httpd
5、安裝TFTP服務,修改配置文件並啟動。這里修改一下tftp的根目錄,因為還需要測試ubuntu系統,這里做一個區分,如果只安裝一個系統,可以不用修改。
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/centos7 -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/centos7 systemctl daemon-reload systemctl restart tftp systemctl enable tftp
6、安裝PXE引導程序。
yum -y install syslinux
7、將linux內核、初始化鏡像文件和pxe引導文件cp到tftp目錄中。
cp /mnt/cdrom/images/pxeboot/vmlinuz /var/lib/tftpboot/centos7 cp /mnt/cdrom/images/pxeboot/initrd.img /var/lib/tftpboot/centos7 cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/centos7
8、創建啟動菜單目錄。
mkdir /var/lib/tftpbppt/centos7/pxelinux.cfg
9、配置啟動菜單,啟動菜單分為典型啟動菜單和無人值守啟動菜單。
無人值守菜單
cat <<EOF > /var/lib/tftpboot/centos7/pxelinux.cfg/default default auto prompt 0 label auto kernel vmlinuz append initrd=initrd.img method=http://192.168.1.11/centos7 ks=http://192.168.1.11/centos7/ks.cfg EOF
典型啟動菜單,典型菜單在安裝好dhcp后就可以安裝系統了。
cat <<EOF > /var/lib/tftpboot/centos7/pxelinux.cfg/default default auto prompt 0 label auto kernel vmlinuz append initrd=initrd.img method=http://192.168.1.11/centos7 EOF
10、安裝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
11、准備ks.cfg文件,注意文件存放位置。這個是為了在安裝系統的時候,自動去做相應配置,不需要人工干預,典型啟動就不需要這個文件。第一次或者有cp此文件有問題的,建議通過圖形界面,安裝system-config-kickstart,自己配置保存一個文件。
cat <<EOF > /var/www/html/centos7/ks.cfg #platform=x86, AMD64, 或 Intel EM64T #version=DEVEL # Install OS instead of upgrade install # Keyboard layouts keyboard 'us' # Root password rootpw --iscrypted $1$Q/XYvFAh$qdLAUR8q7c3jjaGmefO5F/ # System language lang en_US # System authorization information auth --useshadow --passalgo=sha512 # Use graphical install graphical # SELinux configuration selinux --disabled # Do not configure the X Window System skipx # Firewall configuration firewall --disabled # Network information network --bootproto=dhcp --device=ens33 # Reboot after installation reboot # System timezone timezone Asia/Shanghai # Use network installation url --url="ftp://192.168.1.11/centos7" # System bootloader configuration bootloader --location=mbr # Partition clearing information clearpart --all # Disk partitioning information part /boot --fstype="xfs" --size=200 part / --fstype="xfs" --size=18980 %post --interpreter=/bin/bash cd /etc/yum.repos.d rm -rf * echo -e "[base]" > base.repo echo -e "baseurl=ftp://192.168.1.11/centos7" >> base.repo echo -e "enabled=1" >> base.repo echo -e "gpgcheck=0" >> base.repo %end #下面是手動添加的,保存出來的文件沒有,意思就是最小化安裝系統,如果需要安裝其他包,可以寫在%packages下面 %packages @^minimal %end EOF
上面文件中root密碼是1q2w3e4r
12、圖形界面保存ks.cfg。
12.1、安裝kickstart
yum -y install system-config-kickstart
12.2、打開kickstart
12.3、基本配置,根據自己的需求選擇。
12.4、安裝方法,選擇http,如果你搭建的ftp就選ftp。
12.5、引導裝載程序選擇安裝
12.6、分區信息,選擇清除主引導記錄,添加好自己的分區信息。
12.7、網絡添加dhcp
12.8、認證
12.9、禁用防火牆,根據需求,可以不禁用。
12.10、根據需求,選擇是否安裝圖形界面
12.11、最后根據自己的需求,寫入腳本信息,可以不寫,我這個是按照上面的ks.cfg文件截圖的,其他沒截圖的均為默認。
12.12、最后保存文件即可
測試安裝
1、關閉vmware中NAT模式網卡的dhcp服務。
2、創建一個虛擬機,不選擇安裝鏡像,至少配置2g內存,硬盤記得配置為ks.cfg文件中配置分區的總和大小以上,以上ks文件只需要20G。
3、然后直接運行虛擬機,正常情況下,它會自動安裝好操作系統並重啟。
PXE安裝CentOS7的系統介紹就到這里,ubuntu的配置約有不同,可以參考:PXE裝機服務搭建(安裝ubuntu)