PXE/kickstart实现远程自动安装redhat linux

由于环境限制,本实验通过使用vmware模拟两台虚拟机实现。

服务器  10.4.124.238
安装服务器  10.4.124.252  通过dhcp分配到的地址

相关技术介绍
1,VMware的网络模型

vmware虚拟网络设备,功能具体如下。在使用NAT网络模式试验时,由于vmware本身具有dhcp功能,tftp功能总是失败,当修改为桥接网络(bridged)时,才正常安装
VMnet0:用于虚拟桥接网络下的虚拟交换机
VMnet1:用于虚拟Host-Only网络下的虚拟交换机
VMnet8:用于虚拟NAT网络下的虚拟交换机
VMware Network Adepter VMnet1:Host用于与Host-Only虚拟网络进行通信的虚拟网卡
VMware Network Adepter VMnet8:Host用于与NAT虚拟网络进行通信的虚拟网卡

2. 在PC上从网络启动Red Hat Linux安装程序的PXE协议,同时需要tftp服务
PXE(Pre-boot Execution Environment)是由Intel设计的协议,它可以使计算机通过网络启动。协议分为client和server两端,PXE client在网卡的ROM中,当计算机引导时,BIOS把PXE client调入内存执行,并显示出命令菜单,经用户选择后,PXE client将放置在远端的操作系统通过网络下载到本地运行。
PXE协议的成功运行需要解决以下两个问题:
    既然是通过网络传输,那么计算机在启动时,它的IP地址由谁来配置;
    通过什么协议下载Linux内核和根文件系统
对于第一个问题,可以通过DHCP Server解决,由DHCP server来给PXE client分配一个IP地址,DHCP Server是用来给DHCP Client动态分配IP地址的协议,不过由于这里是给PXE Client分配IP地址,所以在配置DHCP Server时,需要增加相应的PXE特有配置。
至于第二个问题,在PXE client所在的ROM中,已经存在了TFTP Client。PXE Client使用TFTP Client,通过TFTP协议到TFTP Server上下载所需的文件。
TFTP根目录下有linux的相关内核启动文件bootstrap,这样可以就可以引导系统启动了

3. Red Hat Linux安装程序提供的网络安装功能(即指通过网络访问安装介质),需要nfs服务
ks.cfg文件中制定了安装介质的位置,如果没有此文件,需要手工指定。
4. Red Hat Linux 安装程序提供的无人值守安装功能
/tftpboot/pxelinux.cfg/default文件中定义了ks.cfg文件的位置,同时ks.cfg规定了安装过程中的选择配置信息,学习ks的最好方式是找到已已安装
append initrd=initrd.img ks=nfs:10.4.124.238:/export/kickstart/ks.cfg

安装过程

1,前期规划

通过vmware安装linux安装服务器,并设置ip地址为172.16.229.2,掩码255.255.255.0
需要安装以下rpm软件
nfs-utils-lib-*
nfs-utils- *
xinetd-*
tftp-server-*
dhcp-*
dhcp-devel-*
system-config-kickstart-*
2,准备安装介质,安装相关rpm包
也可直接使用光盘
cd /media/RHEL_5.8 x86_64 DVD/images

或者直接使用iso文件
mkdir /mnt/isorom
mount -o loop -t iso9660 /data/rhel-server-5.8-x86_64-dvd.iso  /mnt/isodrom

3,安装dhcp服务器

1)安装dhcp软件

[root@db21 Server]# pwd
/media/RHEL_5.8 x86_64 DVD/Server
[root@db21 Server]# rpm -ivh dhcp-3.0.5-31.el5.x86_64.rpm
warning: dhcp-3.0.5-31.el5.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 897da07a
Preparing...                ########################################### [100%]
   1:dhcp                   ########################################### [100%]
[root@db21 Server]# rpm -qa dhcp
dhcp-3.0.5-31.el5
2)配置dhcp配置

# vi /etc/dhcpd.conf
修改或添加内容为以下:
ddns-update-style interim;
ignore client-updates;
allow booting;
allow bootp;
class "pxeclients"{
match if substring(option vendor-class-identifier,0,9) = "PXEClient";
filename "pxelinux.0";
next-server 10.4.124.238;
}
subnet 10.4.124.224 netmask 255.255.255.224 {
option routers 10.4.124.238;
option subnet-mask 255.255.255.224;
option time-offset -18000; # Eastern Standard Time
range dynamic-bootp 10.4.124.251 10.4.124.252;
default-lease-time 21600;
max-lease-time 43200;
}
3)启动服务
service dhcpd restart

4,配置tftp
1)安装tftp软件包
2)编辑配置文件

# vi /etc/xinetd.d/tftp
将disable=yes改成disable=no

3)启动tftp服务
# chkconfig tftp on
# service xinetd restart

[root@db21 Server]# rpm -ivh vsftpd-2.0.5-24.el5.x86_64.rpm
warning: vsftpd-2.0.5-24.el5.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 897da07a
Preparing...                ########################################### [100%]
   1:vsftpd                 ########################################### [100%]
   
[root@db21 Server]# service vsftpd start
Starting vsftpd for vsftpd: [  OK  ]   

5,配置PXE启动
1)拷贝相关启动文件到/tftpboot目录

[root@db21 tftpboot]# cd /media/"RHEL_5.8 x86_64 DVD"/images
[root@db21 images]# ls
README  TRANS.TBL  boot.iso  diskboot.img  minstg2.img  pxeboot  stage2.img  xen
[root@db21 images]# pwd
/media/RHEL_5.8 x86_64 DVD/images
[root@db21 images]# rsync -av ./pxeboot/ /tftpboot/
sending incremental file list
./
README
TRANS.TBL
initrd.img
vmlinuz

sent 14556904 bytes  received 91 bytes  29113990.00 bytes/sec
total size is 14554862  speedup is 1.00
2) 配置启动的配置文件,这里使用的kickstart启动
[root@db21 images]# mkdir -p /tftpboot/pxelinux.cfg

vi /tftpboot/pxelinux.cfg/default
linux
prompt 1
timeout 30
label linux
  kernel vmlinuz
  append initrd=initrd.img ks=nfs:10.4.124.238:/export/kickstart/ks.cfg


6 . 配置NFS
1)新建相关nfs的目录,其中linuxinstall为安装linux的介质文件夹,kickstart存放ks配置文件

[root@db21 ftp]# mkdir -p /export/linuxinstall
[root@db21 ftp]# mkdir -p /export/kickstart

2)配置nfs,并启动服务
vi /etc/exports
/export/linuxinstall    *(ro,sync)
/export/kickstart       *(ro,sync)
/tftpboot       *(ro,sync)

[root@db21 ftp]# service nfs restart
Shutting down NFS mountd: [FAILED]
Shutting down NFS daemon: [FAILED]
Shutting down NFS quotas: [FAILED]
Starting NFS services:  [  OK  ]
Starting NFS quotas: [  OK  ]
Starting NFS daemon: [  OK  ]
Starting NFS mountd: [  OK  ]
[root@db21 ftp]# export fs
[root@db21 ftp]# exportfs
/export/linuxinstall
                <world>
/export/kickstart
                <world>
3)拷贝安装介质到nfs目录                
cp -R ./* /export/linuxinstall/
                

7. kickstart配置

配置kickstart也可使用system-config-kickstart,更好的方法是借鉴已成功的安装配置文件/root/anaconda-ks.cfg

vi /export/kickstart/ks.cfg
install
nfs --server=10.4.124.238 --dir=/export/linuxinstall
key --skip
lang en_US.UTF-8
keyboard us
xconfig --startxonboot
network --device eth0 --bootproto dhcp
rootpw --iscrypted $1$iAzIiwqi$cgjEWl4lJW1fm3x9GhFhZ.
firewall --disabled
authconfig --enableshadow --enablemd5
selinux --enforcing
timezone Asia/Shanghai
bootloader --location=mbr --driveorder=sda --append="rhgb quiet"
reboot
# 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 --drives=sda
part /boot --fstype ext3 --size=100 --ondisk=sda
part pv.4 --size=0 --grow --ondisk=sda
volgroup vg00 --pesize=32768 pv.4
logvol / --fstype ext3 --name=lv00 --vgname=vg00 --size=8000
logvol swap --fstype swap --name=lv01 --vgname=vg00 --size=1000

%packages
@admin-tools
@base
@chinese-support
@core
@development-libs
@development-tools
@dialup
@editors
@gnome-desktop
@gnome-software-development
@games
@graphical-internet
@graphics
@java
@legacy-software-support
@office
@printing
@sound-and-video
@text-internet
@x-software-development
@base-x
kexec-tools
fipscheck
device-mapper-multipath
sgpio
python-dmidecode
imake
emacs
libsane-hpaio
mesa-libGLU-devel
xorg-x11-utils
xorg-x11-server-Xnest
xorg-x11-server-Xvfb

8.开始安装,启动时按F12

参考资料:

http://hpserver.blog.51cto.com/665945/169215/
百度文库《kickstart无人值守批量安装linux》
http://www.ibm.com/developerworks/cn/linux/es-linux-pservers/
http://www.ibm.com/developerworks/cn/linux/l-autoinstl/
http://www.ibm.com/developerworks/cn/linux/l-tip-prompt/l-pex/
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐