1. 程式人生 > >Linux PXE 自動部署操作系統

Linux PXE 自動部署操作系統

host kernel keyboard any eas mnt from 操作系統 bootp


服務器搭建環境:
server1:eth0:192.168.10.10/24 RHEL 5.8

一、安裝必要的軟件包
mount /dev/hdc /mnt/iso/
yum -y install vsftpd tftp tftp-server syslinux dhcp

二、配置DHCP服務器,註意1
echo 'ddns-update-style interim;
ignore client-updates;

allow booting;
allow bootp;

subnet 192.168.10.0 netmask 255.255.255.0 {

option routers 192.168.10.1;

option subnet-mask 255.255.255.0;

option domain-name-servers 8.8.8.8;

option time-offset -18000; # Eastern Standard Time

range dynamic-bootp 192.168.10.128 192.168.10.254;
default-lease-time 21600;
max-lease-time 43200;
next-server 192.168.10.10;
filename "/pxelinux.0";
}' > /etc/dhcpd.conf
service dhcpd start
註2

三、配置tftp服務器
sed -i '/disable/s/=.*/= no/' /etc/xinetd.d/tftp
service xinetd start
service vsftpd start

四、復制和編輯pxe啟動的文件(位於tftp服務器目錄下)
cp /usr/lib/syslinux/pxelinux.0 /tftpboot/

echo '--To boot from local, type local

--To install RHEL 5.8, type rhel5

' > /tftpboot/boot.msg

cp /mnt/iso/images/pxeboot/initrd.img /tftpboot/initrd_rhel5_x86.img
cp /mnt/iso/images/pxeboot/vmlinuz /tftpboot/vmlinuz_rhel5_x86
mkdir /tftpboot/pxelinux.cfg

echo 'default local
display boot.msg
prompt 1
timeout 30
label local
localhost 0
label rhel5
kernel vmlinuz_rhel5_x86
append initrd=initrd_rhel5_x86.img devfs=nomount ramdisk=9216 text ks=ftp://192.168.10.10/pxe/rhel5.8/ks.cfg ksdecive=eth0' > /tftpboot/pxelinux.cfg/default

五、復制和編輯pxe的安裝源(位於vsftp服務器目錄下)
mkdir -p /var/ftp/pxe/rhel5.8
cp -rf /mnt/iso/* /var/ftp/pxe/rhel5.8/

echo '# Kickstart file automatically generated by anaconda.

install
url --url ftp://anonymous:@192.168.10.10/pxe/rhel5.8
key --skip
lang zh_CN.UTF-8
keyboard us
text
network --device eth0 --onboot yes --bootproto dhcp --hostname client.vicp.net
rootpw --iscrypted $1$sGFG3X5A$HoZCgkUnGIqleVD1wan.e1
firewall --disabled
authconfig --enableshadow --enablemd5
selinux --disabled
timezone --utc Asia/Shanghai
bootloader --location=mbr --driveorder=sda
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
clearpart --linux
part /boot --fstype ext3 --size=100
#part swap --size=512
part / --fstype ext3 --size=6005
reboot
%packages
@british-support
@chinese-support
@core
sgpio' > /var/ftp/pxe/rhel5.8/ks.cfg

註3

全篇完



在同一網段中啟動一臺新主機,只要輸入rhel5就可以自動完成系統的安裝了。如果硬盤沒有初始化,系統會提示,只要按個回車即可。
root的初始密碼為123456

註1:
本例是在虛擬機上測試的,在生產環境中我也是調試完機器再接入網絡的。
如果是在生產環境中會遇到Windows和Linux並存的環境,Windows域必定會存在自己的DHCP服務器,有可能會和Linux的DHCP產生沖突(到底會不會有影響,有什麽影響,筆者也沒試過,也不敢試),因此筆者建議將PXE服務器放在調試環境中,以免影響生產環境的網絡。

註2:
DHCP服務器配置文件中下面幾條是關鍵:
allow booting;
allow bootp;
next-server 192.168.10.10; #指定tftp服務器
filename "/pxelinux.0"; #指定啟動文件名,雖然是以/開頭,但實際上是相對路徑,表示“/tftpboot/pxelinux.0”

註3:
/var/ftp/pxe/rhel5.8/ks.cfg文件的內容怎麽來的?如何編輯?
這文件是手工安裝系統後在root目錄下的anaconda-ks.cfg文件拷貝過來進行簡單的修改得來的。
要修改哪些內容,讀者可以和我的例子對比一下就明白了。文件裏包含了root的初始密碼(我的初始密碼是123456),記得安裝完以後要改密碼呀!


Linux PXE 自動部署操作系統