PXE 批量部署系統


PXE 服務器批量部署方案 
Ubuntu實現多系統批量部署 
2014/4/15 


目錄 
文檔版本說明...................................................................................................................4 
參考資料............................................................................................................ ....... ......4 
文檔目的............................................................................................................ ....... ......4 
聲明..................................................................................................................... ....... ......4 
服務器和軟件需求列表....................................................................................................4 
1,部署前工作介紹...................................................................................................................5 
1.1 目錄介紹......................................................................................................................5 
1.2 相關目錄創建................................................................................................ ............. 5 
2 軟件包實施安裝.............................................................................................. ............. .........5 
2.1 tftpd-pha的安裝.............................................................................................. .............5 
2.1.1 配置文件.............................................................................................. .............5 
2.2 dhcp3-server安裝.............................................................................................. ...........6 
2.2.1 修改配置文件.............................................................................................. ...6 
2.2.2 啓用dhcp服務.............................................................................................. ..7 
2.3, 安裝apache2............................................................................................. .. ........ ....7 
2.3.1 服務啓用和測試.............................................................................................. 7 
2.4 dns服務器............................................... ........................ ...........................................7 
2.4.1 軟件安裝.................................................................................. ........... ........... 7 
2.4.2 配置文件介紹........................................................................... ........... ...........7 
2.4.3 創建和修改正、反解文件......................................................... ........... ..........8 
2.4.4 啓用服務並測試.......................................................................... ........... .........9 
3,系統文件............................................... ........................ ...........................................................9 
3.1 ubuntu光盤文件........................ ........................ .........................................................9 
3.2 redhat-5.4 光盤文件............... ........................ .........................................................9 
3.3 centos-5.7 光盤文件............... ........................ .........................................................9 
4,啓動主菜單編輯.................................. ........................ ..........................................................9 
4.1 編輯default文件..................... ........................ .........................................................9 
4.2創建 pxe.conf文件..................... ........................ .......................................................11 
4.3 編輯ubuntu引導文件................. ........................ .......................................................11 
4.4 編輯redhat菜單引導文件........ ........................ ......................................................11 
4.5編輯redhat菜單引導文件............. ........................ ......................................................12 
5,創建ks自動安裝腳本............................ ........................ ......................................................12 


文檔版本說明 
版本 
發佈時間 
修訂章節 
作者 
V1.0 
2013/4/14 


參考資料 
1,ubuntu官網. https://help.ubuntu.com/community/PXEInstallMultiDistro 
2,linux 公社. http://www.linuxidc.com/Linux/2012-07/65748.htm 

文檔目的 
通過ubuntu server,搭建一個pxe網絡部署平臺,是這個pxe平臺能夠選擇性批量自動部署Redhat,Centos,Ubuntu,Dos和Windows系統。 




服務器和軟件需求列表 
系統版本 
服務器ip 
軟件需求及功能 




Ubuntu-12.04 



192.168.254.131 
Dhcp3-server 
分配ip地址 


Tftpd-pha 
下載系統引導文件 


Syslinux 
一個輕便的引導程序,告訴計算機從linux內核啓動 


Apche2 
共享系統鏡像文件 


Bind9 
DNS轉發查詢 


Bind9-doc 
提供模板文件 


Dnsutils 
Dns相關工具 



1,部署前工作介紹: 

1.1,目錄介紹 
/var/lib/tftpboot下的目錄pxelinux.cfg,ubuntu,redhat,cenots,ubuntu-install,dos,window 
目錄名 
目錄下文件名 
功能 
pxelinux.cfg 
default 
安裝界面 主菜單 

pxe.conf 
界面輔助設置 
ubuntu 
initrd.gz,vmlinuz 
內核引導相關文件 

ubuntu.menu 
主菜單中的子菜單,有加載ubuntu 源信息 
redhat 
initrd.img ,vmlinuz 
內核引導相關文件 

ubuntu.menu 
主菜單中的子菜單,有加載 redhat 源信息 
ubuntu-installer 

裏面文件較多,主要是從ubuntu系統鏡像文件中複製過來的,從光盤的install/netboot中全部拷貝過來。 
Apacha默認的文檔目錄/var/www 


/var/www 
Ubuntu/ 
對應系統光盤文件複製過來的 

Redhat/ 
對應系統光盤文件複製過來的 

Centos/ 
對應系統光盤文件複製過來的 


1.2 相關目錄創建 
mkdir -p /var/www/install/ubuntu 
mkdir -p /var/www/install/redhat 
mkdir -p /var/www/install/centos 
mkdir -p /var/lib/tfptboot/ubuntu 
mkdir -p /var/lib/tfptboot/redhat 
mkdir -p /var/lib/tfptboot/centos 

2,軟件包實施安裝 
2.1,tftpd-pha的安裝 
apt-get install xinetd 
apt-get install tftpd-pha 

2.1.1 配置文件: /etc/default/tftp-pha 
# /etc/default/tftpd-hpa 
TFTP_USERNAME="tftp" 
TFTP_DIRECTORY="/var/lib/tftpboot" (tftpd默認目錄) 
TFTP_ADDRESS="0.0.0.0:69" 
TFTP_OPTIONS="--secure" 

vim /etc/xinetd/tftp(默認沒有,可以手動創建,這裏我們不需要) 
service tftp 
         { 
             disable         = no #這裏改爲no 
             socket_type     = dgram 
             protocol        = udp 
             wait            = yes 
             user            = root 
             server          = /usr/sbin/in.tftpd 
             server_args     = -s /tftpboot/root 
             source          = 11 
             cps             = 100 2 
             flags =IPv4 
          } 

2.2,dhcp3-server安裝 
apt-get install dhcp3-server 
配置文件:/etc/dhcp/dhcpd.conf 
2.2.1 修改配置文件 
在全局配置中添加allow booting;表示是否相應使用者查詢 
allow bootp;表示是否相應激活查詢 
在subnet中修改自己需要更改的參數,最後還要加入 
next-server 192.168.254.131; 告訴客戶端tftpd服務器是 
192.168.254.131 
filename "isolinux.0"; 
下面貼出自己的dhcpd.conf文件 
ddns-update-style none; 
# option definitions common to all supported networks... 
option domain-name "example.com"; 
option domain-name-servers ubuntu.example.com; 
default-lease-time 600; 
max-lease-time 7200; 
allow booting; 
allow bootp; 
# A slightly different configuration for an internal subnet. 
subnet 192.168.254.0 netmask 255.255.255.0 { 
range 192.168.254.1 192.168.254.100; 
option domain-name-servers ubuntu.example.com; 
# option domain-name "example.com"; 
option routers 192.168.254.131; 
option broadcast-address 192.168.254.255; 
default-lease-time 600; 
max-lease-time 7200; 
filename "pxelinux.0"; 
next-server 192.168.254.131; 


2.2.2 啓用dhcp服務 
service isc-dhcp-server start 


2.3, 安裝apache2 
apt-get install apache2 
2.3.1 服務啓用和測試 
apache默認文檔目錄是/var/www ,所以這裏自學要啓動apache服務就ok 
注意:將/var/www下的install目錄權限更改一下: 
chmod -R 777 /var/www/install 
測試一下,是否能看到/var/www/install下的文件 
http://192.168.254.131/install 

2.4 dns服務器 
2.4.1 軟件安裝 
apt-get install bind9 bind9-doc dnsutils 

2.4.2 配置文件介紹 
/etc/bind/ 下 
named.conf.options 爲全局配置文件 
named.conf.local 添加和刪除zone文件 
db.192.168.254 自定義反解文件 
db.example.zone 自定義正解文件 
看配置文件: 
vim named.conf.options 
forwarders { 
// 192.168.254.131; 
// }; 只需要更改這裏的ip地址,如果能通外網,寫本地區的dnsip地址, 

vim named.conf.local 添加正解文件和反解文件 
zone "example.com" { 
type master; 
file "example.zone"; #正解文件爲 example.zone 
(沒寫路徑,默認在/var/cache/bind下) 
}; 
zone "254.168.192.in-addr.arpa" { 
type master; 
file "/etc/bind/db.192.168.254"; #反解文件爲 db.192.168.254 
}; 

2.4.3 創建和修改正、反解文件 
cp /etc/bind/db.127 /var/cache/bind/example.zone 
cp /etc/bind/db.127 /etc/bind/d.192.168.254 
正解文件 vim /var/cache/bind/example.zone 

$TTL 604800 
@ IN SOA ubuntu.example.com. root. ( 
2 ; Serial 
604800 ; Refresh 
86400 ; Retry 
2419200 ; Expire 
604800 ) ; Negative Cache TTL 

@ IN NS ubuntu.example.com. 
@ IN A 127.0.0.1 
@ IN AAAA ::1 
ubuntu IN A 192.168.254.131 
pincer IN A 192.168.254.132 
$GENERATE 100-200 pincer$ in a 192.168.254.$ #根據分配的ip地址 
分配對應主機名 

反解文件 vim /etc/bind/d.192.168.254 
$TTL 604800 
@ IN SOA ubuntu.example.com. root.localhost. ( 
1 ; Serial 
604800 ; Refresh 
86400 ; Retry 
2419200 ; Expire 
604800 ) ; Negative Cache TTL 

@ IN NS ubuntu.example.com. 
1.0.0 IN PTR localhost. 
131 IN PTR ubuntu.example.com. 
132 IN PTR pincer.example.com. 
$GENERATE 100-200 $ IN PTR pincer$.example.com. #根據分配的ip地址分配對 
應主機名 
#################################注意################################### 
正解和反解文件的擁有人最好改爲bind,不然服務器是沒有權限讀取正,反解文件的 
######################################################################## 

2.4.4 啓用服務並測試 
/etc/init.d/bind9 start 
netstat -nuplt|grep :53 
測試: 
修改本地文件/etc/resolv.conf 
nameserver 192.168.254.131 #本機的dns指向131 
正解測試: 
nslookup 
pincer.example.com 
反解測試: 
host 192.168.254.132 

3,系統文件 
cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot 
3.1 ubuntu光盤文件 
掛載iso鏡像文件 
mount -o loop /src/ubuntu.12.04.iso /media/cdrom 
這裏不採取軟連接,因爲涉及到多個系統文件,所以只能一一複製到服務器 
裏面 
cp -r /media/cdrom/* /var/www/install/ubuntu & 
cp /media/cdrom/install/initrd.gz /var/lib/tftpboot/ubuntu 
cp /media/cdrom/install/vmlinuz /var/lib/tftpboot/ubuntu 
cp -r /media/cdrom/install/netboot/ubuntu-installer /var/lib/tftpboot/ 
cp -r /media/cdrom/install/netboot/pxelinux.cfg /var/lib/tftpboot/ 
3.2 redhat-5.4 光盤文件 
umount /media/cdrom 
mount -o loop /src/rhel-5.4.iso /media/cdrom 
cp -r /media/cdrom/* /var/www/install/redhat & 
cp /media/cdrom/install/initrd.img /var/lib/tftpboot/redhat 
cp /media/cdrom/install/vmlinuz /var/lib/tftpboot/redhat 
3.3 centos-5.7 光盤文件 
umount /media/cdrom 
mount -o loop /src/centos-5.7.iso /media/cdrom 
cp -r /media/cdrom/* /var/www/install/centos & 
cp /media/cdrom/images/pxeboot/vmlinuz /var/lib/tftpboot/ 
cp /media/cdrom/images/pxeboot/initrd.img /var/lib/tftpboot/ 
注意:將/var/www下的install目錄權限更改一下: 
chmod -R 777 /var/www/install 

4,啓動主菜單編輯 
4.1 編輯default文件 
使用vim編輯: vim /var/lib/tftpboot/pxelinux.cfg/default 

include ubuntu-installer/i386/boot-screens/menu.cfg #1,2行是主菜單的界面設置 
default ubuntu-installer/i386/boot-screens/vesamenu.c32 
TIMEOUT 600 
ONTIMEOUT BootLocal 
PROMPT 0 #如果改爲1,則等待1 
秒後自動安裝 
MENU INCLUDE pxelinux.cfg/pxe.conf #可以引用自定義界面 
設置,文件爲pxe.conf , 
文件在/var/lib/tftpboot/pxelinux.cfg下 
NOESCAPE 1 
LABEL BootLocal 
localboot 0 
TEXT HELP 
Boot to local hard disk 
ENDTEXT 
MENU BEGIN Ubuntu #ubuntu菜單,可以進入, 
裏面有子菜單 
MENU TITLE Ubuntu 
LABEL Previous 
MENU LABEL Previous Menu 
TEXT HELP 
Return to previous menu 
ENDTEXT 
MENU EXIT 
MENU SEPARATOR 
MENU INCLUDE ubuntu/ubuntu.menu #引用ubuntu定義菜單文 
件,進行安裝源選擇和自 
動安裝 
MENU END 
MENU BEGIN Redhat Enterprise Linux 
MENU TITLE Redhat Enterprise Linux 
LABEL Previous 
MENU LABEL Previous Menu 
TEXT HELP 
Return to previous menu 
ENDTEXT 
MENU EXIT 
MENU SEPARATOR 
MENU INCLUDE redhat/rhel.menu 
MENU END 
MENU BEGIN CentOS 
MENU TITLE CentOS 
LABEL Previous 
MENU LABEL Previous Menu 
TEXT HELP 
Return to previous menu 
ENDTEXT 
MENU EXIT 
MENU SEPARATOR 
MENU INCLUDE centos/centos.menu 
MENU END 
######################################################################## 
注意:下面的幾個文件,必須與default文件中include寫的路徑和文件名對應 
######################################################################## 
4.2創建 pxe.conf文件 (這個文件可選,因爲default中引用了自帶的) 
vim /var/lib/tftpboot/pxelinux.cfg/pxe.conf 
MENU TITLE PXE Server 
#MENU BACKGROUND pxelinux.cfg/logo.png 
NOESCAPE 1 
ALLOWOPTIONS 1 
PROMPT 0 
#menu width 80 
#menu rows 14 
#MENU TABMSGROW 24 
#MENU MARGIN 10 
menu color border 30;44 #ffffffff #00000000 std 

4.3 編輯ubuntu引導文件 
vim /var/lib/tftpboot/ubuntu/ubuntu.menu 
LABEL 2 
MENU LABEL Ubuntu 12.0 (32-bit) 
KERNEL ubuntu/vmlinuz 
APPEND http://192.168.254.131/install/ubuntu ks=http://192.168.254.131/ 
install/ubuntu/ks.cfg initrd=ubuntu/initrd.gz 
TEXT HELP 
Boot the Ubuntu 12.04 32-bit DVD 
ENDTEXT 
#LABEL 1 
# MENU LABEL Ubuntu 12.04 (64-bit) 
# KERNEL ubuntu64/vmlinuz 
## APPEND http://192.168.254.131/install/ubuntu ks=http://192.168.254.131/ 
install/ubuntu64/ks.cfg initrd=ubuntu64/initrd.gz 
# TEXT HELP 
# Boot the Ubuntu 12.04 64-bit DVD 
# ENDTEXT 
目前要確定,/var/lib/tftpboot/ubuntu/下有三個文件了initrd.gz ubuntu.menu vmlinuz 
文件中,使用的是ubuntu 32位的系統,如果有32和64兩個選擇,可以去掉下面的註釋,然後做相應的更改,例如在/var/www/install/下創建目錄ubuntn64,然後將系統鏡像文件複製進入,再創建一個ks.cfg文件放在ubuntu64 目錄下 
在/var/lib/tfptboo/下創建ubuntu64目錄,將內核文件,引導文件等複製進去 

4.4 編輯redhat菜單引導文件 
vim /var/lib/tftpboot/redhat/rhel.menu 

#LABEL 2 
#MENU LABEL rhel 5.4 (64-bit) 
# KERNEL redhat64/vmlinuz 
# APPEND ks=http://192.168.254.131/install/redhat64/ks.cfg lang=us keymap=us initrd=redhat64/initrd.img ramdisk_size=10000 
# TEXT HELP 
# Install redhat (32-bit) 
# ENDTEXT 
# TEXT HELP 
# Install redhat (64-bit) 
# ENDTEXT 
LABEL 1 
MENU LABEL rhel 5.4 (32-bit) 
KERNEL redhat/vmlinuz 
APPEND ks=http://192.168.254.131/install/redhat/ks.cfg lang=us keymap= 
us initrd=redhat/initrd.img ramdisk_size=10000 
TEXT HELP 
Install redhat (32-bit) 
ENDTEXT 
確認/var/lib/tftpboot/redhat/目錄下已經有三個文件了:initrd.img rhel.menu vmlinuz 

4.5編輯centos菜單引導文件 
vim /var/lib/tftpboot/redhat/centos.menu 
#LABEL 2 
# MENU LABEL CentOS 5.4 (64-bit) 
# KERNEL CentOS/5.4/amd64/vmlinuz 
# APPEND method=nfs:10.10.1.10:/srv/install/CentOS/5.4/amd64/ lang=us key 
map=us ip=dhcp ksdevice=eth0 noipv6 initrd=CentOS/5.4/amd64/initrd.img ramdisk_s 
ize=10000 
# TEXT HELP 
# Install CentOS 5.4 (64-bit) 
# ENDTEXT 
LABEL 1 
MENU LABEL CentOS 5.4 (32-bit) 
KERNEL centos/vmlinuz 
APPEND ks=http://192.168.254.131/install/centos/ks.cfg lang=us keymap=u 
s ip=dhcp ksdevice=eth0 noipv6 initrd=centos/initrd.img ramdisk_size=10000 
TEXT HELP 
Install CentOS 5.4 (32-bit) 
ENDTEXT 

5,創建ks自動安裝腳本 
這裏是使用的圖形界面創建的,apt-get install system-config-kickstart 
貼出ubuntu的ks.cfg 
#################################注意################################### 
在編輯redhat 5.4的ks.cfg腳本的時候,必須要安裝一個軟件(在最下面添加%packages 
@chinese-support) 選擇安裝中文支持就可以了 
否則會彈出圖形交互讓你選擇安裝軟件,!!!同時要加入key --skip 否側要彈出圖形交互讓你填入序列號!!! 
######################################################################## 
27311662 
29769350 
18118723045 xie 

#Generated by Kickstart Configurator 
#platform=x86 

#System language 
lang en_US 
#Language modules to install 
langsupport en_US 
#System keyboard 
keyboard us 
#System mouse 
mouse 
#System timezone 
timezone Asia/Shanghai 
#Root password 
rootpw --disabled 
#Initial user 
user pincer --fullname "pincer" --iscrypted --password $1$sW.dwNiL$mT3F6HEj1Et.o 
dDtbTgCi1 
#Reboot after installation 
reboot 
#Use text mode install 
text 
#Install OS instead of upgrade 
install 
#Use Web installation 
url --url http://192.168.254.131/install/ubuntu 
#System bootloader configuration 
bootloader --location=mbr 
#Clear the Master Boot Record 
zerombr yes 
#Partition clearing information 
clearpart --all --initlabel 
#Disk partitioning information 
part / --fstype ext4 --size 12000 
part swap --size 1024 
#System authorization infomation 
auth --useshadow --enablemd5 
#Network information 
network --bootproto=dhcp --device=eth0 
#Firewall configuration 
firewall --disabled 
#Do not configure the X Window System 
skipx 
%packages 
openssh-server 
openssh-client 
其他系統的ks文件同上,也可以根據這個修改 
他們都是通過httpd共享的,所有都放在相應的位置/var/www/install/ubuntu/ks.cfg 
redhat :/var/www/install/redhat/ks.cfg 

##################################注意################################# 
因爲使用vmware workstation,所以在測試完redhat後,當我測試ubuntu的時候,在自動安裝時總是報錯,這個錯誤在網上無法查到,我花費了3個小時。。。囧 

這裏可以看出的光驅不能被mount,但是我已經把虛擬機的光驅卸載了,這是因爲,之前複製的時候,第一次掛載的ubuntu,第二次掛載的redhat,所以導致了這個問題,下面只要將客戶機的cdrom選擇ubuntu的景象就ok了, 
但是,同樣,我們cdrom選擇ubuntu的時候,來進行安裝redhat卻不會這樣報錯!!!! 
####################################################################### 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章