使用PXE+DHCP+Apache+Kickstart无人值守安装CentOS5.2-i386操作系统
Linux Server: ip 192.168.115.110
Linux Client: 设置bios为网络启动
(在client安装成功后,查看到它的ip为192.168.115.99)
执行PXE+Kickstart安装需要的设备为:
1)DHCP服务器
2)TFTP服务器
3)system-config-kickstart工具,它必须依赖于图形界面
4)一台存放系统安装文件的服务器,如 NFS、HTTP或 FTP 服务器
5)一个带有 PXE 支持网卡的主机。
系统环境:
[root@localhost ~]# cat /etc/redhat-release
CentOS release 5.4 (Final)
[root@localhost ~]# uname -i
i386
检查所需软件包是否安装
[root@localhost ~]# rpm-qa|egrep "dhcp|vsftp|tftp"
vsftpd-2.0.5-16.el5
检查后,我们发现:当前系统中只安装了vsftp服务,待会我们还要安装dhcp、tftp服务
关闭防火墙和selinux,避免对测试造成影响
[root@localhost~]# iptables -F
[root@localhost~]# chkconfig iptables off
[root@localhost~]# setenforce 0
安装dhcp、tftp软件包
[root@localhost~]# rpm -ih /mnt/CentOS/tftp-server-0.42-3.1.el5.centos.i386.rpm
###########################################[100%]
###########################################[100%]
[root@localhost~]# rpm -ih /mnt/CentOS/tftp-0.42-3.1.el5.centos.i386.rpm
###########################################[100%]
###########################################[100%]
[root@localhost~]# rpm -ih /mnt/CentOS/dhcp-*
###########################################[100%]
###########################################[ 50%]
###########################################[100%]
安装system-config-kickstart工具所需的图形界面
[root@localhost~]# yum -y groupinstall 'X Window System’
安装system-config-kickstart工具
[root@localhost~]# yum -y install system-config-kickstart
其实也就是安装pykickstart和system-config-kickstart,在系统盘可以找到
rpm -ih /mnt/CentOS/pykickstart-0.43.1-1.el5.noarch.rpm
rpm -ih/mnt/CentOS/system-config-kickstart-2.6.19.6-1.el5.noarch.rpm
复制linux启动、内核文件及启动镜像文件
[root@localhost ~]# mkdir/tftpboot/pxelinux.cfg
[root@localhost~]# cp /usr/lib/syslinux/pxelinux.0 /tftpboot/
[root@localhost~]# cp /mnt/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
[root@localhost~]# cp /mnt/p_w_picpaths/pxeboot/initrd.img /tftpboot/
[root@localhost~]# cp /mnt/p_w_picpaths/pxeboot/vmlinuz /tftpboot/
修改/tftpboot/pxelinux.cfg/default文件,最后内容如下:
[root@localhost~]# vim /tftpboot/pxelinux.cfg/default
defaultlinux
prompt1
timeout 6 #默认超时时间600,我们可以将它改小点
displayboot.msg
F1boot.msg
F2options.msg
F3general.msg
F4param.msg
F5rescue.msg
labellinux
kernel vmlinuz
append initrd=initrd.img ks=ftp://192.168.115.110/ks.cfg
labeltext #192.168.115.110是本机的IP
kernel vmlinuz #ks.cfg是Kickstart所生成的配置文件
append initrd=initrd.img text
labelks
kernel vmlinuz
append ks initrd=initrd.img
labellocal
localboot 1
labelmemtest86
kernel memtest
append -
在图像界面执行system-config-kickstart命令,生成ks.cfg文件。点击超链接获取截图
[root@localhost ~]# ll
-rw-r--r-- 1 root root 1229 Apr 2 21:29 ks.cfg
[root@localhost~]# chmod 777 ks.cfg
不然可能由于权限问题,客户端无法下载ks.cfg文件
[root@localhost ~]# cp ks.cfg /var/ftp/
修改/etc/xinetd.d/tftp文件,将disable的值由yes变为no,最后内容如下:
(也就是将TFTP服务设置为运行状态)
[root@localhost~]# cat /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 bootdiskless \
# workstations, download configurationfiles to network-aware printers, \
# and to start the installation processfor some operating systems.
servicetftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot
disable = no #将yes改为no,然后保存退出
per_source = 11
cps = 100 2
flags = IPv4
}
然后复制配置模板文件到指定的目录中,并重新命名。
[root@localhost~]#/bin/cp/usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc/dhcpd.conf
cp:是否覆盖“/etc/dhcpd.conf”? y
修改/etc/dhcpd.conf配置文件,最后内容如下:
[root@localhost~]# cat /etc/dhcpd.conf
ddns-update-styleinterim;
ignoreclient-updates;
subnet192.168.115.0 netmask 255.255.255.0 {
option routers 192.168.115.2;#115网段网关,这是影响客户端能否上网的因素之一
option subnet-mask 255.255.255.0;
next-server 192.168.115.110;#运行kickstart服务的主机IP,即本机IP
filename "pxelinux.0"; #设置BootStrap文件
option time-offset -18000; # Eastern Standard Time
range dynamic-bootp192.168.115.10 192.168.115.100;#客户端可使用IP范围
default-lease-time 21600;
max-lease-time 43200;
}
[root@localhost ~]# cp ks.cfg /var/ftp/
修改/etc/dhcpd.conf配置文件,最后内容如下:
[root@localhost~]# cat /var/ftp/ks.cfg
#platform=x86,AMD64, 或 Intel EM64T
#System authorization information
auth --useshadow --enablemd5
#System bootloader configuration
bootloader--location=mbr
#Clear the Master Boot Record
zerombr
#Partition clearing information
clearpart--all --initlabel
#Use text mode install
text
#Firewall configuration
firewall--disabled
#Run the Setup Agent on first boot
firstboot--disable
#System keyboard
keyboardus
#System language
langzh_CN
#Installation logging level
logging--level=info
#Use network installation
url--url=ftp://192.168.115.110/pub
#Network information
network--bootproto=dhcp --device=eth0 --onboot=on
reboot
#Rootpassword
rootpw--iscrypted $1$VMepVglx$PVrchWxd/xDglDdb7tQ.r.
#SELinux configuration
selinux--disabled
#Do not configure the X Window System
skipx
#System timezone
timezone America/New_York
#Install OS instead of upgrade
install
#Disk partitioning information
part/boot --asprimary --bytes-per-inode=4096 --fstype="ext3" --size=500
partswap --bytes-per-inode=4096 --fstype="swap" --size=512
part/ --asprimary --bytes-per-inode=4096 --fstype="ext3" --grow --size=1
%packages
@base
@chinese-support
@development-libs
@development-tools
[root@localhost~]# mount -o loop /dev/cdrom/var/ftp/pub/
[root@localhost~]# df -hT /dev/cdrom
文件系统类型容量已用 可用 已用% 挂载点
/dev/hdc iso9660 3.8G 3.8G 0 100% /var/ftp/pub
启动tftp、dhcp、vsftp的系统服务
[root@localhost~]# /etc/init.d/xinetd restart
停止 xinetd:[确定]
启动 xinetd:[确定]
[root@localhost ~]# /etc/init.d/dhcpd restart
关闭 dhcpd:[确定]
启动 dhcpd:[确定]
[root@localhost~]# /etc/init.d/vsftpd restart
关闭 vsftpd:[确定]
为 vsftpd 启动 vsftpd:[确定]
[root@localhost~]# chkconfig xinetd on
[root@localhost~]# chkconfig dhcpd on
[root@localhost~]# chkconfig vsftpd on
若修改过上面的配置文件,需要重新启动服务
[root@localhost ~]# rpm -qa|egrep"dhcp|vsftp|tftp"
tftp-0.42-3.1.el5.centos
dhcpv6-client-1.0.10-17.el5
dhcp-devel-3.0.5-13.el5
vsftpd-2.0.5-16.el5
tftp-server-0.42-3.1.el5.centos
dhcp-3.0.5-13.el5
在client安装成功后,会自动重启系统,登录用户名和密码分别是root,123.com
获取到的ip为192.168.115.99
现在我们还要2点需要确认
1)route -n 查看网关,我的机器网关为192.168.115.2
2)cat /etc/redhat-release
nameserver 192.168.115.2(追加)
然后我们在检验,看是否可以上网,如ping g.cn,若能ping通,即可上网
若不行,再逐一排查,可查看本人的,解决虚拟机不能上网的文档
想让客户机可以上网,除了需要在dhcp中配置网关外,还需添加nameserver
[root@localhost ~]# echo "nameserver192.168.115.2" >>/etc/resolv.conf
[root@localhost ~]# cat /etc/resolv.conf
; generated by /sbin/dhclient-script
search localdomain
nameserver 192.168.115.2
[root@localhost ~]#ping g.cn #若能ping通,则机器可以上网