原理和概念:
一 什麼是PXE
嚴格來說,PXE 並不是一種安裝方式,而是一種引導的方式。進行 PXE 安裝的必要條件是要安裝的計算機中包含一個 PXE 支持的網卡(NIC),即網卡中必須要有 PXE Client。PXE (Pre-boot Execution Environment)協議使計算機可以通過網絡啟動。協議分為 client 和 server 端,PXE client 在網卡的 ROM 中,當計算機引導時,BIOS 把 PXE client 調入內存執行,由 PXE client 將放置在遠端的文件通過網絡下載到本地運行。運行 PXE 協議需要設置 DHCP 服務器和 TFTP 服務器。DHCP 服務器用來給 PXE client(將要安裝系統的主機)分配一個 IP 地址,由於是給 PXE client 分配 IP 地址,所以在配置 DHCP 服務器時需要增加相應的 PXE 設置。此外,在 PXE client 的 ROM 中,已經存在了 TFTP Client。PXE Client 通過 TFTP 協議到 TFTP Server 上下載所需的文件。
二 什麼是KickStart
KickStart是一種無人職守安裝方式。KickStart的工作原理是通過記錄典型的安裝過程中所需人工干預填寫的各種參數,並生成一個名為ks.cfg的文件;在其後的安裝過程中(不只局限於生成KickStart安裝文件的機器)當出現要求填寫參數的情況時,安裝程序會首先去查找KickStart生成的文件,當找到合適的參數時,就采用找到的參數,當沒有找到合適的參數時,才需要安裝者手工干預。這樣,如果KickStart文件涵蓋了安裝過程中出現的所有需要填寫的參數時,安裝者完全可以只告訴安裝程序從何處取ks.cfg文件,然後去忙自己的事情。等安裝完畢,安裝程序會根據ks.cfg中設置的重啟選項來重啟系統,並結束安裝。
三 PXE + KickStart安裝的條件
執行 PXE + KickStart安裝需要的設備為:
• DHCP 服務器;
• TFTP 服務器;
• KickStart所生成的ks.cfg配置文件
四 安裝步驟
系統:CentOS 6.3
ip 地址:192.168.137.10
兩台vm,一台server 一台用來裝系統
1.加載光盤到/mnt/下
mount /dev/cdrom /mnt/
cp -rf /mnt/* /var/www/html/ #拷貝光盤裡面的所有內容到apache根目錄下,作為安裝源
2.安裝tftp-server
yum install tftp-server*
配置tftp
vim /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot #開機必需的程序路徑(根據的tftpboot路徑更改)
disable = yes #把這邊的yes改為no
per_source = 11
cps = 100 2
flags = IPv4
}
3.配置tftpboot的內容
mkdir /tftpboot
cp /usr/share/syslinux/pxelinux.0 /tftpboot/
cp /mnt/images/pxeboot/initrd.img /tftpboot/
cp /mnt/images/pxeboot/initrd.img /tftpboot/
cp /mnt/isolinux/*.msg /tftpboot/ #開機引導文件
mkdir /tftpboot/pexlinux.cfg
cp /mnt/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
4.安裝配置 DHCP server
yum install dhcp*
vim /etc/dhcp/dhcpd.conf
ddns-update-style interim;
ignore client-updates;
next-server 192.168.137.10; #tftp server 的ip地址
filename "/pxelinux.0";
subnet 192.168.137.0 netmask 255.255.255.0 {
option routers 192.168.137.10;
option subnet-mask 255.255.255.0;
range dynamic-bootp 192.168.137.100 192.168.137.150;
default-lease-time 21600;
max-lease-time 43200;
}
5.安裝配置 HTTPD
yum install httpd*
vim /etc/httpd/conf/httpd.conf
找到 #ServerName www.example.com:80 這一行 ,把注釋去掉
6.安裝配置 kickstart
yum install system-config-kickstart
yum install desktop* #安裝桌面環境,當然也不需要那麼費事,也可以用原有的ks.cfg也就是/root/anaconda-ks.cfg,當然適當的位置要進行修改
用kickstart自己定制 ks.cfg保存在/var/www/html/下
7.修改 ks.cfg
chmod -R 777 /tftpboot/
vim /tftpboot/pxelinux.cfg/default
在最後面添加一下內容:
label linux
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.137.10/ks.cfg #ks.cfg的路徑
8.關閉防火牆
/etc/init.d/iptables stop
getenforce 來檢測selinux是否開啟 ,如果開啟 getenforce 0來進行關閉。
9.啟動服務
/etc/init.d/dhcpd start
/etc/init.d/xinetd start
/etc/init.d/httpd start
10.不出意外,進可以全自動安裝 centos 6.3的系統了