RHEL5+PXE+DHCP+Apache+Kickstart安裝RHCE實驗室環境
RHEL5+PXE+DHCP+Apache+Kickstart安裝RHCE實驗室環境
因為工作及學習均有這方面的需要,在實驗成功之後我就把kickstart的無人值守安裝過程寫出來,以供分享,同時也希望廣大網友能提出好的建議,共同進步!轉載請註明下本人及出處!對於實驗步驟有bug的地方不在斷修改及完善,謝謝大家多提意見(撫琴煮酒)
原理和概念:
1.1 什麼是PXE
嚴格來說,PXE 並不是一種安裝方式,而是一種引導的方式。進行 PXE 安裝的必要條件是要安裝的計算機中包含一個 PXE 支持的網卡(NIC),即網卡中必須要有 PXE Client。PXE (Pre-boot Execution Environment)協議使計算機可以通過網路啟動。協議分為 client 和 server 端,PXE client 在網卡的 ROM 中,當計算機引導時,BIOS 把 PXE client 調入內存執行,由 PXE client 將放置在遠端的文件通過網路下載到本地運行。運行 PXE 協議需要設置 DHCP 伺服器和 TFTP 伺服器。DHCP 伺服器用來給 PXE client(將要安裝系統的主機)分配一個 IP 地址,由於是給 PXE client 分配 IP 地址,所以在配置 DHCP 伺服器時需要增加相應的 PXE 設置。此外,在 PXE client 的 ROM 中,已經存在了 TFTP Client。PXE Client 通過 TFTP 協議到 TFTP Server 上下載所需的文件。
1.2 什麼是KickStart
KickStart是一種無人職守安裝方式。KickStart的工作原理是通過記錄典型的安裝過程中所需人工干預填寫的各種參數,並生成一個名為ks.cfg的文件;在其後的安裝過程中(不只局限於生成KickStart安裝文件的機器)當出現要求填寫參數的情況時,安裝程序會首先去查找KickStart生成的文件,當找到合適的參數時,就採用找到的參數,當沒有找到合適的參數時,才需要安裝者手工干預。這樣,如果KickStart文件涵蓋了安裝過程中出現的所有需要填寫的參數時,安裝者完全可以只告訴安裝程序從何處取ks.cfg文件,然後去忙自己的事情。等安裝完畢,安裝程序會根據ks.cfg中設置的重啟選項來重啟系統,並結束安裝。
1.3 PXE + KickStart安裝的條件
執行 PXE + KickStart安裝需要的設備為:
• DHCP 伺服器;
• TFTP 伺服器;
• KickStart所生成的ks.cfg配置文件
• 一台存放系統安裝文件的伺服器,如 NFS、HTTP 或 FTP 伺服器。
• 帶有一個 PXE 支持網卡的將安裝的主機;
安裝的步驟:
一、 安裝httpd
yum -y install httpd*
二、 掛載RHEL5的DVD光碟,並複製第一章光碟下的所有內容(文件和文件夾)到/var/html/www下
1、mount /dev/cdrom /mnt
2、cp ?rf /mnt/* /var/html/www
三、 安裝 tftp-server,並啟用tftp服務,重啟xinetd進程1、rpm -ivh tftp-server-0.39-1.i386.rpm
2、vi /etc/xinetd.d/tftp
# default: off
# description: The tftp server serves files using the trivial file transfer \
# protocol. The tftp protocol is often used to boot diskless \
# workstations, download configuration files to network-aware printers, \
# and to start the installation process for some operating systems.
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
disable = no #disable的直由yes變為no
per_source = 11
cps = 100 2
flags = IPv4
}
3、service xinetd restart四、 配置支持PXE啟動:(注意我已經把第一章光碟的內容複製到/var/www/html目錄中了,所以所需要的文件我只需要從/var/ftp目錄中複製就行了,但在描述的時候,我還是表明了文件的真實的位置,比如在DVD光碟的哪個中,只是文件我是從/var/www/html目錄中複製而已,大家也可學我樣偷懶)
1、cd /tftpboot/ ????>若該文件夾已經存在則不用建立
2、 cp /usr/lib/syslinux/pxelinux.0 /tftpboot
3、把Linux第一張安裝光碟上/image/pxeboot/initrd.img和vmlinux複製到/tftpboot/中
cp /var/ftp/image/pxeboot/initrd.img /tftpboot
cp /var/ftp/image/pxeboot/vmlinux /tftpboot
4、 複製第一張安裝光碟上isolinux/*.msg拷貝到/tftpboot目錄下
cp /var/ftp/isolinux/*.msg /tftpboot
5、 在tftpboot中新建一個pxelinux.cfg目錄
mkdir pxelinux.cfg
6、 把Linux第一張安裝光碟上isolinux目錄中的isolinux.cfg複製到pxelinux.cfg目錄中,並同時更改文件名稱為default
7、 cd pxelinux.cfg
cp /var/ftp/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
8、 在第7小步中,我們暫時不要修改default文件,其實到達這一步驟的時候,我都就可以通過網路引導了,通過網路引導之後接下了就可以手動安裝了,但是這裡面我們討論的是無人值守安裝,所謂無人值守安裝就是在從引導到安裝都不需要手動指定,一氣呵成,我們接下來繼續講解)
六、 安裝dhcp服務,同時修改配置
1、 rpm -ivh dhcp-3.0.1-12_EL.i386.rpm
2、 複製配置模板文件到指定的目錄中,並重命名
cp /usr/share/doc/dhcp-3.0.1/dhcpd.conf.sample /etc/dhcpd.conf
3、 修改配置文件,添加的一行:filename "/pxelinux.0",其他的修改自己完成就行了.這文件的位置一定要注意,不然實驗會失敗,切記# vim /etc/dhcpd.conf
ddns-update-style interim;
ignore client-updates;
next-server 192.168.1.14; #PXE伺服器IP地址
filename "/pxelinux.0" #注意此行的位置,寫在subnet下面的話,失驗失敗
subnet 192.168.1.0 netmask 255.255.255.0 {
# --- default gateway
option routers 192.168.1.254;
option subnet-mask 255.255.255.0;
option nis-domain "example.com";
option domain-name "example.com";
option domain-name-servers 192.168.1.254;
option time-offset -18000; # Eastern Standard Time
# option ntp-servers 192.168.1.1;
# option netbios-name-servers 192.168.1.1;
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
# option netbios-node-type 2;
range dynamic-bootp 192.168.1.128 192.168.1.254;
default-lease-time 21600;
max-lease-time 43200;
# we want the nameserver to appear at a fixed address
#host ns {
# next-server marvin.redhat.com;
# hardware ethernet 12:34:56:78:AB:CD;
# fixed-address 192.168.1.110;
#}
}4、 啟動dhcp服務
service dhcp start
七、 安裝kicksttart,同時配置kickstart1、 rpm -ivh system-config-kickstart-2.5.16-2.noarch.rpm
2、 在gnome環境下配置kickstart
system-config-kickstart3、 基本配置
4、 安裝方法,選擇httpd安裝,切記不要輸入任何的帳號,我們採用的匿名安裝
5、 引導安裝程序選項,不需要做更改
6、 分區信息,創建三個分區
7、 網路配置,我使用的靜態分配地址(動態同樣如此)
8、 顯示配置:
9、 軟體包的選擇,我選擇了Kernel Developent和Development Tools安裝(但千萬不要選擇這兩個軟體包,不然的話在安裝的時候會報錯的,以下是我先選擇安裝,等一會我們來查看產生的問題,你就明白了)
10、 其他的都是默認設置,沒有做修改
11、 生成文件ks.cfg,保存到/var/www/html下
八、 修改/tftpboot/pxelinux.cfg/default文件,指定讀取ks.cfg的方法(ks=http://192.168.1.40/ks.cfg)
vi /tftpboot/pxelinux.cfg/default
auth --useshadow --enablemd5
key --skip #這行一定要,跳過註冊號輸入,不然實驗失敗
bootloader --location=mbr
clearpart ?all ?initlabel
text
firewall --disabled
firstboot --disable
keyboard us
lang en_US
logging --level=info
url --url=http://192.168.1.14/
network --bootproto=dhcp --device=eth0 --onboot=on
reboot
rootpw --iscrypted $1$HEJKfwF9$r1l0JoPz74ToF9NbE3Qs1
selinux --disabled
timezone --isUtc Asia/Shanghai
intall
xconfig --defaultdesktop=GNOME -depth=8 --resolution=640x480
part swap --bytes-per-inode=4096 --fstype="swap" --size=512
part /boot --bytes-per-inode=4096 --fstype-"ext3" --size=200
part / --bytes-per-inode=4096 --fstype="ext3" --grow --size=1
%packages
@cluster-storage
@mysql
@development-libs
@editors
@text-internet
@x-software-development
@virtualization
@legacy-network-server
@dns-server
@gnome-desktop
@dialup
@core
@base
@ftp-server
@network-server
@clustering
@java-development
@base-x
@chinese-support
@web-server
@smb-server
@printing
@admin-tools
@development-tools
@graphical-internet
kmod-gnbd-xen
kmod-gfs-xen
perl-Convert-ASN1
perl-Crypt-SSLeay
mesa-libGLU-devel
tftp-server
kexec-tools
bridge-utils
device-mapper-multipath
ypserv
openldap-servers
vnc-server
dhcp
xorg-x11-server-Xnest
xort-x11-server-Xvfb
imake
gcc-objc
expect
《解決方案》
有愛的樓主謝謝分享
《解決方案》
後面的怎麼不解釋一下,有不明的地方
《解決方案》
學習了,最近學要這個實驗