原理和概念:html
一 什麼是PXEnode
嚴格來講,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 上下載所需的文件。linux
二 什麼是KickStartios
KickStart是一種無人職守安裝方式。KickStart的工做原理是經過記錄典型的安裝過程當中所需人工干預填寫的各類參數,並生成一個名爲ks.cfg的文件;在其後的安裝過程當中(不僅侷限於生成KickStart安裝文件的機器)當出現要求填寫參數的狀況時,安裝程序會首先去查找KickStart生成的文件,當找到合適的參數時,就採用找到的參數,當沒有找到合適的參數時,才須要安裝者手工干預。這樣,若是KickStart文件涵蓋了安裝過程當中出現的全部須要填寫的參數時,安裝者徹底能夠只告訴安裝程序從何處取ks.cfg文件,而後去忙本身的事情。等安裝完畢,安裝程序會根據ks.cfg中設置的重啓選項來重啓系統,並結束安裝。nginx
三 PXE + KickStart安裝的條件vim
執行 PXE + KickStart安裝須要的設備爲:centos
• DHCP 服務器;服務器
• TFTP 服務器;網絡
• KickStart所生成的ks.cfg配置文件app
四 詳細步驟
1.加載光盤到/mnt/下
mount /dev/cdrom /mnt/
cp -rf /mnt/* /var/www/html/ #拷貝光盤裏面的全部內容到nginx根目錄下,做爲安裝源
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/p_w_picpaths/pxeboot/initrd.img /tftpboot/
cp /mnt/p_w_picpaths/pxeboot/initrd.img /tftpboot/
cp /mnt/isolinux/*.msg /tftpboot/ #開機引導文件
mkdir /tftpboot/pexlinux.cfg
cp /mnt/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
chmod -R 777 /tftpdboot/ #將TFTP目錄開發權限,不然,tftp下載可能會出問題
4.安裝配置 DHCP server
ddns-update-style interim;
ignore client-updates;
subnet 192.168.1.0 netmask 255.255.255.0 { #//所屬網段及掩碼。
# --- default gateway
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
filename "pxelinux.0"; #//PXE獲得IP之後的引導文件
next-server 192.168.1.91;//tftp服務器IP地址。
# option nis-domain "domain.org";
# option domain-name "domain.org";
option domain-name-servers 192.168.1.91;
option time-offset -18000; # Eastern Standard Time
# option ntp-servers 192.168.1.1;
# option netbios-name-servers 192.168.1.1;
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
# option netbios-node-type 2;
range dynamic-bootp 192.168.1.20 192.168.1.25; #//IP地址池範圍。
default-lease-time 21600;
max-lease-time 43200;
# we want the nameserver to appear at a fixed address
host ns {
next-server marvin.redhat.com;
hardware ethernet 12:34:56:78:AB:CD;
fixed-address 207.175.42.254;
}
}
5.配置 nginx或者http
使用默認80端口,將跟目錄指向到 /var/www/html/ //光盤源複製到的目錄
6.安裝配置 kickstart
yum install system-config-kickstart
在桌面環境下執行圖形化kickstart生成工具 system-config-kickstart來生成ks.cfg
7.修改 ks.cfg
chmod -R 777 /tftpboot/
cp ks.cfg /var/www/html/
vim /tftpboot/pxelinux.cfg/default
在最後面添加一下內容:
label linux
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.1.91/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 的系統了