歡迎您光臨本站 註冊首頁

pxe+http+ks+dhcp+tftp網路自動安裝centos-論壇整理

←手機掃碼閱讀     火星人 @ 2014-03-03 , reply:0

pxe+http+ks+dhcp+tftp網路自動安裝centos-論壇整理

pxe+http+ks+dhcp+tftp網路自動安裝centos-論壇整理

整理了論壇里幾位大牛的帖子,我只是把他們的東西綜合了一下,自己安裝了一遍,把過程發上來分享

開始:
開機選PXE網卡啟動(一般按F12)--dhcp獲取ip和pxelinux.0位置--tftp下載pxelinux.0、vmlinuz、initrd--通過pxelinux.0文件找到pxelinux.cfg里的default配置文件,按配置文件找著vmlinuz引導centos進入安裝界面--根據ks.cfg去指定http下載安裝文件,並自動安裝完成
本機ip:192.168.0.6
一、製作ks.cfg
1. 全新安裝centos,選擇好所需定製包
2. 完成安裝後會在root下面生成一個install.log(rpm包列表)anaconda-ks.cfg(下文的ks.cfg基於此文件修改)
3. 將其簡單編輯下保存起來
   cat /root/install.log | grep Installing | sed 's/Installing //g'|sed 's/^\+://g' > /tmp/rpm.log
4. 創建存放rpm包的目錄
    mkdir -p /tmp/cdrom/CentOS
5. 將centos光碟或iso文件掛在到mnt下
    mount -o loop CentOS-5.5-i386-bin-DVD.iso /mnt
    mount /dev/cdrom /mnt/
6. 將所需軟體包(rpm.log 列出的)copy到 /tmp/cdrom/CentOS/ 下
使用shell如下:
#!/bin/bash
DEBUG=0
LT_CD=/mnt
ALL_RPMS_DIR=/mnt/CentOS
LT_RPMS_DIR=/tmp/cdrom/CentOS/
packages_list=/tmp/rpm.log
number_of_packages=`cat $packages_list | wc -l`
i=1
while [ $i -le $number_of_packages ] ; do
line=`head -n $i $packages_list | tail -n -1`
name=`echo $line | awk '{print $1}'`
version=`echo $line | awk '{print $3}' | cut -f 2 -d :`
if [ $DEBUG -eq "1" ] ; then
echo $i: $line
echo $name
echo $version
fi
if [ $DEBUG -eq "1" ] ; then
ls $ALL_RPMS_DIR/$name-$version*
if [ $? -ne 0 ] ; then
echo 「cp $ALL_RPMS_DIR/$name-$version* 」
fi
else
echo 「cp $ALL_RPMS_DIR/$name-$version* $LT_RPMS_DIR/」
cp $ALL_RPMS_DIR/$name-$version* $LT_RPMS_DIR/
# in case the copy failed
if [ $? -ne 0 ] ; then
echo 「cp $ALL_RPMS_DIR/$name-$version* 」
cp $ALL_RPMS_DIR/$name* $LT_RPMS_DIR/
fi
fi
i=`expr $i + 1`
done
7. 賦予執行許可權 chmod 777 rpm.sh
    執行shell   ./rpm.sh
8. 將除CentOS目錄以外的文件同步到cdrom文件夾里
    rsync -avpz --exclude=CentOS /mnt/ /tmp/cdrom/
10.生成ks.cfg文件
cat /tmp/cdrom/CentOS/ks.cfg
install
url --url http://192.168.0.6/
lang en_US.UTF-8
keyboard us
network --device=eth0 --bootproto static --ip 192.168.0.6 --netmask 255.255.255.0 --gateway 192.168.0.1 --nameserver 8.8.8.8 --hostname csys
rootpw --iscrypted $1$ioa/i9np$zbOdjS52XKA62z7NC5KwN/
firewall --enabled --port=22:tcp
authconfig --enableshadow --enablemd5
selinux --enforcing
timezone Asia/Shanghai
bootloader --location=mbr --driveorder=hdb
text
firstboot --disable
logging --level=info
reboot
zerombr
clearpart --all --initlabel
part swap --fstype="swap" --size=2000
part /boot --fstype="ext3" --size=100
part / --fstype="ext3" --size=20000
part /opt --fstype="ext3" --grow --size=1
skipx
%packages --resolvedeps
@base
@core
@dialup
@editors
@text-internet
keyutils
trousers
fipscheck
device-mapper-multipath
%post
echo "nameserver 202.106.46.151" >> /etc/resolv.conf
/sbin/chkconfig microcode_ctl off
/sbin/chkconfig lvm2-monitor off
/sbin/chkconfig readahead_early off
/sbin/chkconfig kudzu off
/sbin/chkconfig mcstrans off
/sbin/chkconfig isdn off
/sbin/chkconfig auditd off
/sbin/chkconfig restorecond off
/sbin/chkconfig cpuspeed off
/sbin/chkconfig irqbalance off
/sbin/chkconfig portmap off
/sbin/chkconfig nfslock off
/sbin/chkconfig mdmonitor off
/sbin/chkconfig rpcidmapd off
/sbin/chkconfig rpcgssd off
/sbin/chkconfig messagebus off
/sbin/chkconfig bluetooth off
/sbin/chkconfig netfs off
/sbin/chkconfig pcscd off
/sbin/chkconfig acpid off
/sbin/chkconfig apmd off
/sbin/chkconfig haldaemon off
/sbin/chkconfig hidd off
/sbin/chkconfig autofs off
/sbin/chkconfig cups off
/sbin/chkconfig rawdevices off
/sbin/chkconfig sendmail off
/sbin/chkconfig gpm off
/sbin/chkconfig anacron off
/sbin/chkconfig atd off
/sbin/chkconfig yum-updatesd off
/sbin/chkconfig avahi-daemon off
/sbin/chkconfig firstboot off
/sbin/chkconfig local off
/sbin/chkconfig smartd off
/usr/sbin/eject
11.製作iso文件(網路安裝,可省略)
mkisofs -r -T -J -V CentOS -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -o /tmp/CentOS5.5-i386.iso /tmp/cdrom/
12.將/tmp/cdrom/目錄設置成http跟目錄。


二、安裝tftp
安裝
yum install tftp*
配置
-bash-3.2# more /etc/xinetd.d/tftp
service tftp
{
         socket_type             = dgram
         protocol                = udp
         wait                    = yes
         user                    = root
         server                  = /usr/sbin/in.tftpd
         server_args             = -u nobody -s /tftpboot
         disable                 = no
         per_source              = 11
         cps                     = 100 2
         flags                   = IPv4
}
啟動
-bash-3.2# /etc/init.d/xinetd restart
查看確認
-bash-3.2# chkconfig --list |grep tftp
         tftp:           on

三、安裝dhcp
安裝
-bash-3.2# yum install dhcp*
配置
-bash-3.2# more /etc/dhcpd.conf
ddns-update-style interim;
ignore client-updates;
allow booting;
allow bootp;
subnet 192.168.0.0 netmask 255.255.255.0 {
option routers 192.168.0.1;
option subnet-mask 255.255.255.0;
option domain-name-servers 8.8.8.8;
option time-offset -18000;
range dynamic-bootp 192.168.0.200 192.168.0.254;
default-lease-time 21600;
max-lease-time 43200;
next-server 192.168.0.6;
filename "/pxelinux.0";
}
host wy {
         hardware ethernet 40:61:86:7C:77:F3;
         fixed-address 192.168.0.6;
}
啟動
-bash-3.2# /etc/init.d/dhcpd start
卡機自動啟動
-bash-3.2# chkconfig --level 2345 dhcpd on
查看確認
-bash-3.2# chkconfig --list |grep dhcpd
dhcpd           0ff   1ff   2n    3n    4n    5n    6ff

四. pxe相關文件放到tftp目錄
掛載centos5.5光碟到/mnt目錄

-bash-3.2# mkdir /tftpboot/pxelinux.cfg
-bash-3.2# cp /usr/lib/syslinux/pxelinux.0 /tftpboot/
-bash-3.2# cp /mnt/isolinux/vmlinuz /tftpboot/
-bash-3.2# cp /mnt/isolinux/initrd.img /tftpboot/
-bash-3.2# vi /tftpboot/pxelinux.cfg/default
default linux
display boot.msg
F1 boot.msg
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg
label linux
   kernel vmlinuz
   append initrd=initrd.img ramdisk_size=8192 ks=http://192.168.0.6/ks.cfg
label text
   kernel vmlinuz
   append initrd=initrd.img text
label ks
   kernel vmlinuz
   append ks initrd=initrd.img
label local
   localboot 1
label memtest86
   kernel memtest
   append -

#文件說明dhcpd.conf:
/etc/dhcpd.conf通常包括三部分:parameters、declarations 、option。
1.DHCP配置文件中的parameters(參數):表明如何執行任務,是否要執行任務,或將哪些網路配置選項發送給客戶
    參 數                                解 釋
ddns-update-style               配置DHCP-DNS 互動更新模式。
default-lease-time              指定確省租賃時間的長度,單位是秒。
max-lease-time                  指定最大租賃時間長度,單位是秒。
hardware                        指定網卡介面類型和MAC地址。
server-name                     通知DHCP客戶伺服器名稱。
get-lease-hostnames flag        檢查客戶端使用的IP地址。
fixed-address ip                分配給客戶端一個固定的地址。
authritative                    拒絕不正確的IP地址的要求。

2.DHCP配置文件中的declarations (聲明):用來描述網路布局、提供客戶的IP地址等
聲 明                                                 解 釋
shared-network                              用來告知是否一些子網路分享相同網路。
subnet                                      描述一個IP地址是否屬於該子網。
range                                       起始IP 終止IP 提供動態分配IP 的範圍。
host                                        主機名稱 參考特別的主機。
group                                       為一組參數提供聲明。
allow unknown-clients;deny unknown-client   是否動態分配IP給未知的使用者。
allow bootp;deny bootp                      是否響應激活查詢。
allow booting;deny booting                  是否響應使用者查詢。
filename                                    開始啟動文件的名稱. 應用於無盤工作站。
next-server                                 設置引導伺服器ip地址,用於bootp方式的引導

3. DHCP配置文件中的option(選項):用來配置DHCP可選參數,全部用option關鍵字作為開始
選 項                              解 釋
subnet-mask           為客戶端設定子網掩碼。
domain-name           為客戶端指明DNS名字。
domain-name-servers   為客戶端指明DNS伺服器IP地址。
host-name             為客戶端指定主機名稱。
routers               為客戶端設定默認網關。
broadcast-address     為客戶端設定廣播地址。
ntp-server            為客戶端設定網路時間伺服器IP地址。
time-offset          為客戶端設定和格林威治時間的偏移時間,單位是秒。
注意:如果客戶端使用的是視窗操作系統,不要選擇"host-name"選項,即不要為其指定主機名稱。

#kickstart是什麼
         許多系統管理員寧願使用自動化的安裝方法來安裝紅帽企業 Linux.為了滿足這種需要,紅帽創建了kickstart安裝方法.使用kickstart,系統管理員可以創建一個文件,這個文件包含了在典型的安裝過程中所遇 到的問題的答案.
         Kickstart文件可以存放於單一的伺服器上,在安裝過程中被獨立的機器所讀取.這個安裝方法可以支持使用單一kickstart文件在多台機器上安裝紅帽企業Linux,這對於網路和系統管理員來說是個理想的選擇.
         Kickstart給用戶提供了一種自動化安裝紅帽企業Linux的方法.

如何執行kickstart安裝
         kickstart 安裝可以使用本地光碟,本地硬碟驅動器,或通過 NFS,FTP,HTTP 來執行.
         要使用 kickstart,必須:
                 1.創建一個kickstart文件.
                 2.創建有kickstart文件的引導介質或者使這個文件在網路上可用.
                 3.籌備安裝樹.
                 4.開始kickstart安裝.

創建kickstart文件
         kickstart文件是一個簡單的文本文件,它包含了一個項目列表,每個項目由一個關鍵字來識別.可以用「Kickstart 配置」應用程序創建它或是自己從頭編寫.紅帽企業Linux安裝程序也根據在安裝過程中的選擇創建一個簡單的kickstart文件,這個文件被寫入到 /root/anaconda-ks.cfg.可以用任何能夠把文件保存為ASCII文本的文本編輯器或字處理器來編輯它.
         首先,在創建kickstart文件時留意下列問題:
                 1.每節必須按順序指定.除非特別申明,每節內的項目則不必按序排列.小節的順序為:
                         命令部分,這裡應該包括必需的選項.
                         %packages部分,這部分選擇需要安裝的軟體包.
                         %pre和%post部分,這兩個部分可以按任何順序排列而且不是必需的.
                 2.不必需的項目可以被省略.
                 3.如果忽略任何必需的項目,安裝程序會提示用戶輸入相關的項目的選擇,就象用戶在典型的安裝過程中所遇到的一樣.一旦用戶進行了選擇,安裝會以非交互的方式(unattended)繼續(除非找到另外一個沒有指定的項目).
                 4.以井號("#")開頭的行被當作註釋行並被忽略.
         對於 kickstart 升級,下列項目是必需的:
                 1.語言
                 2.安裝方法
                 3.設備規格(如果這個設備是在安裝過程中所需要的)
                 4.鍵盤設置
                 5.upgrade 關鍵字
                 6.引導裝載程序配置
                 7.如果任何其他的項目被指定為upgrade,這些項目將被忽略(注意這包括了軟體包選擇).
《解決方案》

學習鳥  謝謝分享

[火星人 ] pxe+http+ks+dhcp+tftp網路自動安裝centos-論壇整理已經有730次圍觀

http://coctec.com/docs/service/show-post-1408.html