一、戰前理論
什麼是PXE?
PXE(preboot execute environment,預啓動執行環境)是由Intel公司開發的最新技術, 工作於Client/Server的網絡模式, 只想hi工作站通過網絡從遠程服務器下載鏡像, 並由此支持通過網絡啓動操作系統, 在啓動過程中, 終端要求服務器分配IP地址, 在用TFTP(Trivial file transfer protocol)或MTFTP(Multicast Trivial File Transfer Protocol)協議卸載一個啓動軟件包到本機內存中執行, 這個啓動軟件包完成終端基本軟件設置, 從而引導預先安裝服務器中的操作系統. PXE可以引導多種操作系統, 如: Windows 95/98/2000/windows 2008/xp/win 7/win8;
Kickstart技術:
Kickstart技術的核心是:自動應答文件(Kickstart文件),就是將本來在安裝過程中需要我們手動設置的語言、密碼、網絡參數等通過讀取讀取自動應答文件實現自動設置。也就是說,我們需要事先將對操作系統的設置寫入自動應答文件,開始安裝操作系統時,指定安裝程序讀取自動應答文件實現自動安裝及部署操作系統
二、安裝部署
以下配置文件中的IP等內容需根據實際環境填寫,不可原樣複製
切勿注意內網中是否有別的DHCP服務器
1、安裝服務器的IP:192.168.0.70
2、具體實現步驟如下
(1)安裝DHCP服務
[root@c6 ~]# yum install -y dhcp [root@c6 ~]# vim /etc/dhcp/dhcpd.conf log-facility local7; subnet 192.168.0.0 netmask 255.255.255.0 { range 192.168.0.150 192.168.0.200; option domain-name-servers 114.114.114.114; option routers 192.168.0.1; default-lease-time 600; max-lease-time 7200; next-server 192.168.0.70; filename "pxelinux.0"; }
配置說明:指定爲192.168.0.0/24網絡分配動態IP地址,動態地址池從192.168.0.150至192.168.0.200;客戶端獲取的網關地址爲192.168.0.1;TFTP地址爲192.168.0.70,啓動文件名稱爲pxelinux.0
(2)安裝部署TFTP服務
[root@c6 ~]# yum install tftp-server -y [root@c6 ~]# vim /etc/xinetd.d/tftp service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /var/lib/tftpboot disable = no per_source = 11 cps = 100 2 flags = IPv4 }
配置說明:共享路徑爲/var/lib/tftpboot
(3) 將客戶端所需啓動文件複製到TFTP服務器
[root@c6 ~]# yum install -y syslinux [root@c6 ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ #將光盤或ISO掛載到/media中,將安裝鏡像中的啓動鏡像文件和啓動配置文件複製到TFTP共享目錄下 [root@c6 ~]# mount /dev/cdrom /mnt [root@c6 ~]# cp /mnt/isolinux/{vmlinuz,initrd.img} /var/lib/tftpboot/ [root@c6 ~]# mkdir /var/lib/tftpboot/pxelinux.cfg [root@c6 ~]# vim /var/lib/tftpboot/pxelinux.cfg/default default linux #prompt 1 timeout 600 display boot.msg menu background splash.jpg menu title Welcome to CentOS 6.8! menu color border 0 #ffffffff #00000000 menu color sel 7 #ffffffff #ff000000 menu color title 0 #ffffffff #00000000 menu color tabmsg 0 #ffffffff #00000000 menu color unsel 0 #ffffffff #00000000 menu color hotsel 0 #ff000000 #ffffffff menu color hotkey 7 #ffffffff #ff000000 menu color scrollbar 0 #ffffffff #00000000 label linux menu label ^Install or upgrade an existing system menu default kernel vmlinuz append initrd=initrd.img ks=nfs:192.168.0.70:/ks/ks.cfg label vesa menu label Install system with ^basic video driver kernel vmlinuz append initrd=initrd.img xdriver=vesa nomodeset label rescue menu label ^Rescue installed system kernel vmlinuz append initrd=initrd.img rescue label local menu label Boot from ^local drive localboot 0xffff label memtest86 menu label ^Memory test kernel memtest append - [root@c6 ~]# /etc/init.d/xinetd restart
配置說明:default指定默認引導方式,即下面的以label開頭的各種引導方式;kernel指定的是系統內核文件;後面的ks參數可以指定自動應答文件的位置,本例設置爲通過訪問192.168.0.70的NFS共享方式讀取kickstart文件。
(4)創建kickstart自動應答文件
[root@c6 ~]# mkdir /ks [root@c6 ~]# vim /ks/ks.cfg #platform=x86, AMD64, 或 Intel EM64T #version=DEVEL # 禁用防火牆規則iptables firewall --disabled # 安裝系統 install # nfs服務器地址ip,及nfs上的系統鏡像路徑 nfs --server=192.168.0.70 --dir=/mnt # Root 密碼(加密的123456) rootpw --iscrypted $1$16PXgd.m$C4vE6OJCMGfQVadgm0DSe. # System authorization information auth --useshadow --passalgo=sha512 # 使用字符界面安裝 text firstboot --disable # 美式鍵盤 keyboard us # 系統語言 lang en_US # 關閉Selinux selinux --disabled # 不配置圖形界面 skipx # 安裝日誌記錄級別爲 info logging --level=info # 安裝完成後重啓 reboot # 系統時區 timezone Asia/Shanghai # 網絡配置:動態獲取ip、網卡名稱eth0,開機自動啓動網絡服務,不開啓ipv6,主機名(自定義,可以不寫,默認localdomain:localhost) network --bootproto=dhcp --device=eth0 --onboot=on --noipv6 --hostname=CentOS04 # 系統啓動引導配置:mbr引導 bootloader --location=mbr # 磁盤分區,zerombr:一定要有,不然安裝的時候會停在格式化分區界面 zerombr clearpart --all --initlabel # 磁盤分區方式 part /boot --fstype="ext4" --size=200 part swap --fstype="swap" --size=2000 part / --fstype="ext4" --grow --size=1 # 安裝完成後要執行的腳本 %post /sbin/chkconfig --level 2345 atd off /sbin/chkconfig --level 2345 httpd off /sbin/chkconfig --level 2345 cups off /sbin/chkconfig --level 2345 smartd off /sbin/chkconfig --level 2345 bluetooth off /sbin/chkconfig --level 2345 sshd on /sbin/chkconfig --level 2345 snmpd on /usr/sbin/useradd tomcat mkdir /root/.ssh/ chmod -R 600 /root/.ssh/ %end # 自定義一些軟件包,比如vim、開發工具 %packages @additional-devel @development @core vim-common vim-enhanced vim-minimal wget lrzsz %end
(5)部署NFS服務:
[root@c6 ~]# yum install nfs-utils rpcbind -y [root@c6 ~]# vim /etc/exports /ks 192.168.0.0/255.255.255.0(ro) /mnt 192.168.0.0/255.255.255.0(ro) [root@c6 ~]# /etc/init.d/rpcbind start; /etc/init.d/nfs start
(6)開啓客戶機
對於首次安裝的客戶機來說,不需要進入BIOS更改啓動順序,從CD-ROM或硬盤找不到自然會從網絡尋找安裝源