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卻不會這樣報錯!!!!
#######################################################################
PXE 批量部署系統
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.