服务器环境:
Server01:CentOS 6.4 ,安装服务:vsftpd、tftp
Server02:Windows 服务器提供DHCP(我的实际环境中又域控制器充当)
一、基础服务安装配置:
1、安装tftp和vsftpd服务
[root@server ~]# yum -y install tftp-server vsftpd
2、配置tftp:
[root@server ~]# vim /etc/xinetd.d/tftp
service tftp
{
disable = no
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
per_source = 11
cps = 100 2
flags = IPv4
}
##不要更改tftp根目录,否则会造成selinux阻止导致无法登陆。
[root@server ~]# service xinetd restart
[root@server ~]# chkconfig xinetd on ##加入开机启动
[root@server ~]# netstat -unlp | grep :69
udp 0 0 0.0.0.0:69 0.0.0.0:* 1738/xinetd
3、配置vsftp
Vsftp安装后默认就已经可以访问,只需启动并加入开机启动项即可
[root@server ~]# service vsftpd restart
[root@server ~]# chkconfig vsftpd on ##加入开机启动
此时客户端登陆测试,看ftp是否可以匿名访问。
4、关闭防火:
[root@server ~]# chkconfig iptables off ##将防火墙开机启动取消
[root@server ~]# service iptables stop ##停止防火墙服务
二、配置PXE启动:
1、挂载iso文件并拷贝全部安装文件至FTP相应目录
[root@server ~]# mount -o loop /root/CentOS-6.4-x86_64-bin-DVD1.iso /media/cdrom/
[root@server ~]# mkdir /var/ftp/pub/centos6 ##在FTP目录下创建安装源文件目录
[root@server ~]# cp /media/cdrom/* /var/ftp/pub/centos6
2、配置PXE启动文件:
[root@server ~]# cp /var/ftp/pub/centos6/syslinux/pxelinux.0 /var/lib/tftpboot
[root@server ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@server ~]# cp /var/ftp/pub/centos6/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
编辑该文件如下:
[root@server ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
default vesamenu.c32
#prompt 1
timeout 30 ##启动提示界面,默认600,改为1就不提示
display boot.msg
menu background splash.jpg
menu title Welcome to CentOS 6.4!
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color scrollbar 0 #ffffffff #00000000
label linux
menu label ^Install or upgrade an existing system
menu default
kernel vmlinuz
append initrd=initrd.img ks=ftp://192.168.18.20/ks.cfg ##ftp地址,文件配置后面介绍
label vesa
menu label Install system with ^basic video driver
kernel vmlinuz
append initrd=initrd.img xdriver=vesa nomodeset
label rescue
menu label ^Rescue installed system
kernel vmlinuz
append initrd=initrd.img rescue
label local
menu label Boot from ^local drive
localboot 0xffff
label memtest86
menu label ^Memory test
kernel memtest
append -
3、 配置ks.cfg文件:
[root@server ~]# yum -y install system-config-kickstart
[root@server ~]# system-config-kickstart//启动kickstart配置,需图形界面支持
在弹出的界面中,基础配置修改如下红框标准的地方:
安装方法:
启动选项保存默认:
分区信息,具体分区留待后面单独介绍:
网络配置:
防火墙配置保存默认,SeLinux可以不关闭,其能为http、ftp等应用带来跟高的安全性,参考我的文章:
显示配置保存默认
安装包选择根据实际情况配置,一般为了安全和简洁,最小化安装即可:
安装后脚本,可以编写一些shell脚本,完成服务器的初始化操作,如添加yum源、重命名主机,完成基本安全配置,加入统一认证中心等。如下面的示例为更改安装后的yum源为内部ftp地址:
完成后点击“file”按钮保存至ftp根目录/var/ftp/ks.cfg
5、修改ks.cfg,配置支持lvm逻辑卷:
LVM管理磁盘有很多好处,比如磁盘空间的动态调整,将多个磁盘当成一个分区使用,但system-config-kickstart工具不支持LVM逻辑卷的分区设置,因此只能生成后手动修改,ks.cfg逻辑卷的语法如下:
#Disk partitioning information
part pv.volgroup name partition
logvol --vgname= --size= --name=
注意: 上面提到的选项是有先后顺序的。物理卷将先被创建,然后是卷组和逻辑卷。
如我的目标磁盘如下:
[root@test ~]# df -h
文件系统 容量 已用 可用 已用%% 挂载点
/dev/mapper/vg_root-lv_root
20G 2.0G 17G 11% /
tmpfs 499M 0 499M 0% /dev/shm
/dev/sda1 291M 33M 244M 12% /boot
/dev/mapper/vg_root-lv_home
40G 176M 38G 1% /home
/dev/mapper/vg_root-lv_var
9.9G 198M 9.2G 3% /var
则配置ks.cfg文件内容如下:
[root@server ~]# vim /var/ftp/ks.cfg
……以上省略……
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --asprimary --fstype="ext4" --size=300 ##启动分区必须是主分区
part swap --fstype="swap" --size=2048 ##SWAP分区
part pv.01 --size=1 –grow ##剩余空间建立物理卷
volgroup vg_root pv.01 ##建立卷组
logvol / --vgname=vg_root --size=20480 --name=lv_root ##建立根逻辑卷
logvol /var --vgname=vg_root --size=10240 --name=lv_var ##建立var目录逻辑卷
logvol /home --vgname=vg_root --size=40960 --name=lv_home ##建立家目录逻辑卷
##以上空间大小根据实际需要和磁盘空间情况进行调整
%packages
@base
@chinese-support
@console-internet
@core
……以下省略……
6、安装后执行脚本写法:
比如我内网服务器不能上网,我将所有yum源更改为此ftp服务器,则ks.cfg文件如下:
[root@server ~]# vim /var/ftp/ks.cfg
……以上省略……
%post --interpreter=/bin/bash
rm -rf /etc/yum.repos.d/*
echo '[centos6]
name=centos6
baseurl=ftp://192.168.18.20/pub/centos6/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6' > /etc/yum.repos.d/centos6.repo
##此处脚本还可以统一放在ftp服务器上,用命令先下载后在本地执行,如下面几行:
#mkdir /var/scripts
#wget ftp://192.168.18.20/pub/scripts/* -O /var/scripts ##将所有脚本下载在本地
#chmod +x /var/scripts/* -R ##赋予全部脚本执行权限
#/var/scripts/xxx1.sh
#/var/scripts/xxx2.sh
%end
……以下省略……
要实现其他功能,方法一样。
三、Windows DHCP配置:
由于我局域网内已经有Windows提供了DHCP服务,因此只需更改部分设置即可:
1、打开DHCP管理器,并在【服务器选项】上点击右键—选择【配置选项】,弹出如下窗口:
2、找到066 启动服务器主机名,填入服务器tftp服务器IP地址;
3、找到067 启动文件名,填入pxelinux.0
确定后即完成DHCP的配置。
四、客户端全自动安装:
对于没有安装过系统的新机器,开机后默认就会以PXE网络启动,如果之前有安装过系统需要重新安装,则选择从PXE启动即可。