搭建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包的名字而不能生成自应答文件) [iyunv@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
[iyunv@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 } 启动服务
[iyunv@ser1 ~]# netstat -anptu | grep :69 [iyunv@ser1 ~]# service xinetd restart //重启xinetd [iyunv@ser1 ~]# netstat -anptu | grep :69 udp 0 0 0.0.0.0:69 0.0.0.0:* 5436/xinetd 共享网卡引导文件,Syslinux 软件包提供网卡引导文件pxelinux.0,tftp共享目录为/tftpboot [iyunv@ser1 ~]# rpm -ql syslinux | grep "pxelinux.0" /usr/share/syslinux/gpxelinux.0 /usr/share/syslinux/pxelinux.0 [iyunv@ser1 tftpboot]# cp /usr/share/syslinux/pxelinux.0 ./ [iyunv@ser1 tftpboot]# ls linux-install pxelinux.0 [iyunv@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目录存放引导文件 [iyunv@ser1 isolinux]# pwd /misc/cd/isolinux [iyunv@ser1 isolinux]# cp vmlinuz /tftpboot/ //内核 [iyunv@ser1 isolinux]# cp initrd.img /tftpboot/ //内核镜像文件 共享default文件(设置默认安装的操作系统,存放在/tftpboot/pxelinux.cfg,模板文件为光盘isolinux/isolinux.cfg) [iyunv@ser1 tftpboot]# mkdir /tftpboot/pxelinux.cfg [iyunv@ser1 pxelinux.cfg]# pwd /tftpboot/pxelinux.cfg [iyunv@ser1 pxelinux.cfg]# cp /misc/cd/isolinux/isolinux.cfg ./default [iyunv@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指定自应答文件 [iyunv@ser1~]#chmod +r /ks/ks.cfg 6)搭建NFS,共享自应答文件(安装操作系统时的配置信息)和软件包 编辑配置文件/etc/exports [iyunv@ser1~]# cat /etc/exports /ks *(ro) /misc/cd *(ro) 重启服务
[iyunv@ser1 ~]# service portmap restart [iyunv@ser1 ~]# service nfs restart 测试
[iyunv@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 [iyunv@ser1 ~]# cat /ks/ks.cfg auth --useshadow --enable key –skip //跳过注册码 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文件 [iyunv@ser1 ~]# cp anaconda-ks.cfg /ks/ks.cfg [iyunv@ser1 ~]# vim /ks/ks.cfg 到此,kickstart无人值守就配置完成了
|