实现Kickstart + NFS + DHCP + PXE的全自动远程无人职守安装
实验环境:C/S结构,服务器采用的操作系统为Centos 4.5,客户端预装RHEL 4.5,Centos 5.2
1,配置安装树:
建立ISO镜像目录:将镜像文件按照操作系统类别放到相关目录下,还可以细分为32位和64位版本,如下:
[root@drbd-2 opt]# ll
total 8
drwxr-xr-x 4 root root 4096 Oct 30 09:10 Centos
drwxr-xr-x 2 root root 4096 Oct 29 19:35 Redhat
2,配置kickstart无人值守安装脚本:
需要安装kickstart工具包:system-config-kickstart-2.5.16-2.noarch.rpm
进入图形界面运行system-config-kickstart命令按照提示进行无人值守脚本配置:
* 选择的安装方式是通过NFS网络安装,配置好NFS服务器的ip和输出目录。
* 分区方法是分给系统必须的3个分区,/boot,/,swap,剩下的分区再调整。
* 选择系统安装软件包。
将生成的ks.cfg文件拷贝到安装树所在路径的ISO镜像文件所在目录,并将名字更改为操作系统相关版本,如下:
[root@drbd-2 opt]# cd Centos/
[root@drbd-2 Centos]# ls
4.6 5.2
[root@drbd-2 Centos]# cd 5.2
[root@drbd-2 5.2]# ll
total 3930212
-rw-r--r-- 1 root root 1336 Oct 30 11:33 centos5.2.cfg
-rw-r--r-- 1 root root 4020600832 Jun 26 09:17 CentOS-5.2-i386-bin-DVD.iso
如果有多个安装源就按照类似的方法进行操作。
3,配置DHCP服务器
[root@drbd-2 5.2]# more /etc/dhcpd.conf
ddns-update-style interim;
ignore client-updates;
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
option domain-name "example.com";
option domain-name-servers 192.168.1.1;
option time-offset -18000;
range dynamic-bootp 192.168.1.128 192.168.1.254;
default-lease-time 21600;
max-lease-time 43200;
filename "/pxelinux.0";
}
3,配置TFTP服务器
[root@drbd-2 5.2]# more /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
{
disable = no
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
per_source = 11
cps = 100 2
flags = IPv4
}
3,配置NFS服务器
添加ISO镜像文件路径:
[root@drbd-2 5.2]# more /etc/exports
/var/opt/Centos/4.6 192.168.1.0/24(sync,rw)
/var/opt/Centos/5.2 192.168.1.0/24(sync,rw)
4,配置支持PXE启动:
把操作系统ISO镜像挂载到一个空目录,将里面以下文件,/image/pxeboot/initrd.img和vmlinux 以及isolinux/*.msg拷贝到/tftpboot目录下,并更改为操作系统
相关名字,如下:
cp /usr/lib/syslinux/pxelinux.0 /tftpboot
[root@drbd-2 tftpboot]# ll
total 18308
-r--r--r-- 1 root root 2048 Oct 29 20:23 boot.cat
-r--r--r-- 1 root root 458 Oct 29 16:41 boot.msg
-r--r--r-- 1 root root 1220 Oct 29 16:41 general.msg
-r--r--r-- 1 root root 4025705 Oct 29 16:41 initrd-centos4.6.img
-rw-r--r-- 1 root root 5669675 Oct 30 09:13 initrd-centos5.2.img
-r--r--r-- 1 root root 81860 Oct 29 20:24 memtest
-r--r--r-- 1 root root 904 Oct 29 16:41 options.msg
-r--r--r-- 1 root root 968 Oct 29 16:41 param.msg
-rw-r--r-- 1 root root 11822 Oct 30 09:18 pxelinux.0
drwxr-xr-x 2 root root 4096 Oct 30 09:24 pxelinux.cfg
-r--r--r-- 1 root root 536 Oct 29 16:41 rescue.msg
-r--r--r-- 1 root root 549 Oct 29 16:41 snake.msg
-r--r--r-- 1 root root 1518693 Oct 29 16:40 vmlinuz-centos4.6
-rw-r--r-- 1 root root 1806388 Oct 30 09:12 vmlinuz-centos5.2
注意:
如果客户端安装的操作系统版本和服务器的操作系统版本不同的话,
需要安装"syslinux-2.06-0.3E.i386.rpm包",通过下面命令直接拿到里面的文件:
rpm2cpio syslinux-2.06-0.3E.i386.rpm | cpio -vid,解压之后进入/usr/lib/syslinux目录,拿到pxelinux.0文件,将其放到服务器/tftp目录中,对于每一个要被安装的操作系统版本,都需要执行一次该操作,等于说是覆盖。
cd /tftpboot
mkdir pxelinux.cfg
cd pxelinux.cfg
在pxelinux.cfg目录下,建立配置文件default文件的内容如下:
[root@drbd-2 pxelinux.cfg]# more default
default centos4.6
display pxelinux.cfg/list
prompt 1
label centos4.6
kernel vmlinuz-centos4.6
append ks=nfs:192.168.1.244:/var/opt/Centos/4.6/centos4.6.cfg initrd=initrd-centos4.6.img ramdisk_size=8192
label centos5.2
kernel vmlinuz-centos5.2
append ks=nfs:192.168.1.244:/var/opt/Centos/5.2/centos5.2.cfg initrd=initrd-centos5.2.img ramdisk_size=8192
如果是要统一安装某个操作系统版本的话,需要加上“timeout 60”,考虑到在自动安装的时候,用户可以选择操作系统的类别,需要加个list文件解决:
[root@drbd-2 pxelinux.cfg]# more list
Choose one of the following Linux distributions for your installation:
Name Distribution Arch. Installation media
-------------------------------------------------------------------------
centos4.6 centos4.6 i386 192.168.1.244:/var/opt/Centos/4.6/
centos5.2 centos5.2 i386 192.168.1.244:/var/opt/Centos/5.2/
[root@drbd-2 5.2]# more centos5.2.cfg
#Generated by Kickstart Configurator
#platform=x86, AMD64, or Intel EM64T
#System language
lang en_SG
#Language modules to install
langsupport en_SG
#System keyboard
keyboard us
#System mouse
mouse
#Sytem timezone
timezone Asia/Shanghai
#Root password
rootpw --iscrypted $1$/NyFEhVR$/B/pv5ZqSUU.iQ4UVEg7d/
#Reboot after installation
reboot
#Install OS instead of upgrade
install
#Use NFS installation Media
nfs --server=192.168.1.244 --dir=/var/opt/Centos/5.2
#System bootloader configuration
bootloader --location=mbr
#Clear the Master Boot Record
zerombr yes
#Partition clearing information
clearpart --all --initlabel
#Disk partitioning information
part /boot --fstype ext3 --size 150
part / --fstype ext3 --size 10000
part swap --size 4000
#System authorization infomation
auth --useshadow --enablemd5
#Firewall configuration
firewall --disabled
#SELinux configuration
selinux --disabled
#Do not configure XWindows
skipx
#Package install information
%packages --resolvedeps
@ gnome-desktop
@ editors
@ engineering-and-scientific
@ graphical-internet
@ text-internet
@ server-cfg
@ web-server
@ mail-server
@ ftp-server
@ network-server
@ legacy-network-server
@ development-tools
@ x-software-development
@ gnome-software-development
@ kde-software-development
@ legacy-software-development
@ admin-tools
@ system-tools
完成所有的服务配置之后进行检查。
准备一台虚拟机客户端,然后更改启动方式为通过带PXE自启动模块的网卡启动,客户端在开启之后会主动向DHCP服务器获取地址,并且从TFTP服务器上获得安装配置以及信息;客户端所做的工作只是开机,剩下的工作由ks.cfg文件控制自动完成。
阅读(1970) | 评论(2) | 转发(0) |