使用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服务器

3system-config-kickstart工具,它必须依赖于图形界面

4一台存放系统安装文件的服务器,如 NFSHTTP 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服务,待会我们还要安装dhcptftp服务


关闭防火墙和selinux,避免对测试造成影响

[root@localhost~]# iptables -F

[root@localhost~]# chkconfig iptables off

[root@localhost~]# setenforce 0


安装dhcptftp软件包

[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

其实也就是安装pykickstartsystem-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.cfgKickstart所生成的配置文件

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通,则机器可以上网