搭建PXE服务器
1、功能:使客户端主机自动安装操作系统。批量安装操作系统或经常需要安装操作系统或主机没有光驱时,搭建PXE。
2、案例需求:为192.168.1.0/24网络内的主机搭建pxe服务器,通过pxe服务器能够安装rhel5.9的操作系统,pxe服务器能够为客户端主机分配tarena.com区域的主机名、ip地址、子网掩码、网关、dns
3、PXE(Pre-boot Execution Exvironment)
是由Intel设计的协议
它可以使计算机通过网络启动
协议分为client和server
工作原理:client --------> dhcp-server
< --------(next-server,filename)
----------->tftp(/tftpboot)
<---------- (pxelinux.0 vmlinuz initrd.img default(ks=nfs:))
------------->nfs(/etc/exports)
<------------ /ks/ks.cfg(nfs --server),/mnt
--------------->安装
系统构成:DNS服务――分配主机名(可选)
DHCP服务――分配IP地址(必须有)
NFS服务――共享rpm软件包、安装时的自应答文件(kickstart)
TFTP服务――共享网卡引导文件和系统引导文件
YUM服务――自动安装软件包、通过图形的方式生成自安装时的自应答文件
4、配置
1)给服务器配置固定的IP地址
2)配置YUM源:yum源的名字必须以rhel开头(否则不能获取rpm包的名字而不能生成自应答文件)
[root@ser1 ~]# cat /etc/yum.repos.d/server.repo
[rhel-server]
name=Red Hat Enterprise Linux Server
baseurl=file:///mnt/Server
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
3)配置DNS:
安装软件包 bind bind-chrootcaching-nameserver
编辑主配置文件/var/named/chroot/etc/named.conf
4)配置DHCP
安装软件包dhcp
编辑主配置文件/etc/dhcpd.conf ,分配IP地址的范围要与DNS反解中的范围相同
5)配置TFTP:传输小文件,不需要密码,非独立服务,协议TCPUDP,监听端口69
安装软件包tftp-server
编辑配置文件/etc/xinet.d/tftp
[root@ser1 ~]# cat /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot //tftp共享文件的目录
disable = no //xinetd启动时tftp也随之启动
per_source = 11
cps = 100 2
flags = IPv4
}
启动服务
[root@ser1 ~]# netstat -anptu | grep :69
[root@ser1 ~]# service xinetd restart //重启xinetd
[root@ser1 ~]# netstat -anptu | grep :69
udp 0 0 0.0.0.0:69 0.0.0.0:* 5436/xinetd
共享网卡引导文件,Syslinux 软件包提供网卡引导文件pxelinux.0,tftp共享目录为/tftpboot
[root@ser1 ~]# rpm -ql syslinux | grep "pxelinux.0"
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/pxelinux.0
[root@ser1 tftpboot]# cp /usr/share/syslinux/pxelinux.0 ./
[root@ser1 tftpboot]# ls
linux-install pxelinux.0
[root@ser1 tftpboot]# ll
total 36
drwxr-xr-x 4 root root 4096Nov 30 23:39 linux-install
-rw-r--r-- 1 root root 26828 Jan 20 11:30 pxelinux.0
共享系统引导文件,光盘中isolinux和images目录存放引导文件
[root@ser1 isolinux]# pwd
/misc/cd/isolinux
[root@ser1 isolinux]# cp vmlinuz /tftpboot/ //内核
[root@ser1 isolinux]# cp initrd.img /tftpboot/ //内核镜像文件
共享default文件(设置默认安装的操作系统,存放在/tftpboot/pxelinux.cfg,模板文件为光盘isolinux/isolinux.cfg)
[root@ser1 tftpboot]# mkdir /tftpboot/pxelinux.cfg
[root@ser1 pxelinux.cfg]# pwd
/tftpboot/pxelinux.cfg
[root@ser1 pxelinux.cfg]# cp /misc/cd/isolinux/isolinux.cfg ./default
[root@ser1 pxelinux.cfg]# vim default
default rhel5 //默认引导的操作系统,名称与下面的lable同名
prompt 1 //是否使用交互式安装 ,1 是
timeout 600 //安装默认操作系统的等待时间 ,毫秒
display boot.msg //引导时的背景图片,没有时为黑色
F1 boot.msg
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg
label rhel5 //定义标签名
kernel vmlinuz // 内核
appendinitrd=initrd.img ks=nfs:192.168.1.1:/ks/ks.cfg //镜像文件,ks指定自应答文件
[root@ser1~]#chmod +r /ks/ks.cfg
6)搭建NFS,共享自应答文件(安装操作系统时的配置信息)和软件包
编辑配置文件/etc/exports
[root@ser1~]# cat /etc/exports
/ks *(ro)
/misc/cd *(ro)
重启服务
[root@ser1 ~]# service portmap restart
[root@ser1 ~]# service nfs restart
测试
[root@ser1 ~]# showmount -e localhost
Export list for localhost:
/ks *
/misc/cd *
生成自应答文件(ks.cfg)
方法一:用kickstart工具生成
配置YUM源(命名时以rhel开头)
安装提供kickstart工具的软件包system-config-kickstart
图形界面下执行命令system-config-kickstart,保存,生成文件
编辑生成的ks.cfg
[root@ser1 ~]# cat /ks/ks.cfg
auth --useshadow --enable
key �Cskip //跳过注册码
bootloader --location=mbr --md5pass=$1$bVYp18Ek$n9A9LqeFbs.W1Pfn09DrF1
zerombr
clearpart --all --initlabel
graphical
firewall --disabled
firstboot --disable
keyboard us
lang zh_CN
logging --level=info
nfs --server=192.168.1.1 --dir=/mnt //指定rpm包位置
network --bootproto=dhcp --device=eth0 --onboot=on
reboot
rootpw 123456
selinux --disabled
timezone Asia/Shanghai
install
xconfig --defaultdesktop=GNOME --depth=8 --resolution=800x600 --startxonboot
part /boot --bytes-per-inode=4096 --fstype="ext3"--size=100
part swap --bytes-per-inode=4096 --fstype="swap"--size=512
part / --bytes-per-inode=4096 --fstype="ext3" --grow--size=1
%packages
@gnome-desktop
@system-tools
@development-tools
@x-software-development
@gnome-software-development
@admin-tools
@base-x
@development-libs
@graphical-internet
@legacy-software-development
@legacy-software-support
@chinese-support
@text-internet
@server-cfg
@editors
方法二:用anaconda-ks.cfg文件
[root@ser1 ~]# cp anaconda-ks.cfg /ks/ks.cfg
[root@ser1 ~]# vim /ks/ks.cfg
到此,kickstart无人值守就配置完成了