使用PXE+dhcp+tftp+http全自動化安裝centos6

一 實驗環境要求
1. 一臺提供dhcp服務的虛擬機A,一臺等待安裝系統的虛擬機B,它們在同一自定義虛擬網段內(如VMnet3)。
2. B的網卡支持網絡引導,A上同時還提供了tftp(提供安裝引導程序所需文件)和http(提供kickstart配置文件和安裝樹)服務html

二 原理
B依賴A的dhcp服務提供ip/netmask,順便獲取tftp服務所在主機ip和pxelinux.0文件在tftp服務上的位置,這個位置一樣也是獲取啓動系統安裝引導界面所需文件的位置。在isolinux的配置文件中指定kickstart配置文件位置(能夠經過http服務提供),這個位置同時也是安裝樹所在目錄。linux

三 所需的主要文件說明
1.須要放到tftp服務的工做目錄下的文件:express

pxelinux.0: 由syslinux程序提供,功能至關於bootloader,它取代了文件isolinux.bin,用於啓動安裝引導界面。文件位於/usr/share/syslinux/目錄下
vmlinuz,initrd.img: 安裝引導系統isolinux本身運行時所需內核和initrd文件。文件位於安裝光盤下的images/pxeboot/目錄下
boot.msg, vesamenu.c32, splash.jpg: 展現安裝引導菜單所需文件。文件位於安裝光盤下的isolinux/目錄下
isolinux.cgf: isolinux的配置文件,須要修改其中內容,指定ks文件所在位置。文件位於安裝光盤下的isolinux/目錄下

	/var/lib/tftpboot/
	├── boot.msg
	├── initrd.img
	├── pxelinux.0
	├── pxelinux.cfg
	│   └── default
	├── splash.jpg
	├── vesamenu.c32
	└── vmlinuz

2.須要放到http網站目錄下的文件:centos

ks.cfg:    kickstart配置文件,須要本身編寫
安裝樹:    也就是安裝系統選定的安裝光盤中的rpm包
	/var/www/html
	├── centos(把光盤綁定到這個目錄,以提供安裝樹)
	└── ks.cfg

四 配置過程
1.安裝tftp服務端包:tftp-server。
它受xinetd服務控制,監聽端口爲udp:69。安裝好後會自動建立目錄/var/lib/tftpdboot。
啓動服務:bash

chkconfig tftp on
	service xinetd restart

2.配置dhcp服務
主要在subnet中加入兩行:網絡

next-server 192.168.1.10;	#提供tftp服務的主機,這裏就在虛擬機A上
	filename "pxelinux.0";		#tftp服務上的,用於安裝時提供bootloader功能的文件名

3.往/var/lib/tftpboot目錄中複製所需文件
光盤中的文件isolinux.cgf須要放到目錄/var/lib/tftpboot/pxelinux.cfg/下,並重命名爲default,而後修改其中的配置內容:app

append initrd=initrd.img ks=http://192.168.1.10/ks.cfg #指明kickstart配置文件所在位置

其它文件直接複製就行。less

4.安裝httpd服務
安裝好httpd後,在網站根目錄下建立文件夾centos,而後把光盤綁定到這個文件夾:yii

mkdir /var/www/html/centos
	mount --bind /media/cdrom /var/www/html/centos

5.編寫kickstart配置文件,並放到http網站根目錄/var/www/html/下。
這裏是centos6的kickstart配置文件格式,與centos5不兼容:post

# Kickstart file automatically generated by anaconda.

#version=DEVEL
install
cdrom
lang en_US.UTF-8
keyboard us
# Kickstart file automatically generated by anaconda.

#version=DEVEL
install
#cdrom
url --url=http://192.168.1.10/centos
lang en_US.UTF-8
keyboard us
network --onboot yes --device eth0 --bootproto dhcp --noipv6
rootpw  --iscrypted $6$TYALPiNmQ0Bjyii3$XHu9ghpQiu0AxnfWBgp8/DykuCNhG00TfNaTeaHgI17JozWOszBbLyF9xFp8w07lZ4QrkK6oAlvICuk.tIeHc.
reboot
firewall --disabled
authconfig --enableshadow --passalgo=sha512
selinux --disabled
timezone --utc Asia/Shanghai
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
# 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 --all
zerombr
text

part /boot --fstype=ext4 --size=200
part pv.008002 --size=20480

volgroup vg0 --pesize=8192 pv.008002
logvol / --fstype=ext4 --name=root --vgname=vg0 --size=10240
logvol swap --name=swap --vgname=vg0 --size=2048
logvol /usr --fstype=ext4 --name=usr --vgname=vg0 --size=6000
logvol /var --fstype=ext4 --name=var --vgname=vg0 --size=2048

#repo --name="CentOS"  --baseurl=cdrom:sr0 --cost=100

%packages
@core
@server-policy
@workstation-policy
%end

%post
echo -e 'Learning Service\nhttp://www.abc.com\n' >> /etc/issue

sed -i '1,$s@id:[0-9]:initdefault:@id:3:initdefault:@g' /etc/inittab

%end

6.關閉iptables,selinux服務,重啓dhcpd,httpd服務,啓動虛擬機B後就能夠看到安裝菜單,默認等待60秒後就會自動進入安裝過程,直到安裝完成,並自動重啓展現登陸界面。  

相關文章
相關標籤/搜索