要求:
如图所示,左1为一台NFS+PXE服务器,主要为Apache服务器提供主页,为PXE客户机提供系统,中间这台PXE客户机需要无人职守就能安装成功,右1为一台Apache+DNS服务器,DNS服务器要能解析出本台服务器的域名对应的IP,DNS客户机能够通过网页访问域名即可访问Apache主页。
本项目按以下步骤进行:
一、在server-1搭建NFS文件共享(网页)
二、在server-2开启Apache以及DNS
三、利用server-2的DNS域名解析服务,访问网页
四、server-1开启DHCP、FTP以及TFTP服务,实现客户机的PXE装机
实验程序所需要的包
server-1: rpcbind、nfs-utils、dhcp、vsftpd、tftp、lynx、kickstart(软件)
server-2: bind、bind-utils、bind-chroot、lynx、httpd
步骤一:
- 安装相关包
[root@server-1 ~]# yum -y install rpcind nfs-utils lynx
- 制作一个简易网页,利用rpcbind,nfs分享给server-2
server-1
[root@server-1 ~]# mkdir /html
[root@server-1 ~]# cd /html/
[root@server-1 html]# vi index.html
<html><title>Web</title><body><h1>Apache Test</h1></body></html>
[root@server-1 html]# vi /etc/exports
/html 172.16.1.11(ro) #权限为只读
[root@server-1 html]# systemctl start rpcbind nfs
server-2
[root@server-2 ~]# mkdir /test
[root@server-2 ~]# mount 172.16.1.10:/html /test
[root@server-2 ~]# cd /test
[root@server-2 test]# lynx index.html
至此,nfs文件分享功能已经实现
步骤二:
server-2
- 安装相关包
[root@server-2 test]# yum -y install httpd bind* lynx
- 挂载网页至Apache默认文件夹
[root@server-2 test]# mount 172.16.1.10:/html /var/www/html/
[root@server-2 test]# lynx localhost
- 修改Apache默认主页
[root@server-2 test]# vi /etc/httpd/conf/httpd.conf
ServerName www.test.com:80 #修改主页域名
- 对apache-test网页解析
[root@server-2 test]# vi /etc/named.conf
listen-on port 53 { 172.16.1.11; };
allow-query { 172.16.1.0/24; };
[root@server-2 test]# vi /etc/named.rfc1912.zones
zone "test.com" IN {
type master;
file "test.com.zone";
}; #正向解析
zone "1.16.172.in-addr.arpa" IN {
type master;
file "test.com.zone";
}; #反向解析
[root@server-2 test]# cd /var/named/
[root@server-2 named]# vi test.com.zone
$TTL 1D
@ IN SOA test.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum ##@代表本机
NS test.com.
A 172.16.1.11
www IN A 172.16.1.11 #正向解析
1 IN PTR www.test.com. #反向解析
[root@server-2 named]# nslookup www.test.com
Server: 172.16.1.11
Address: 172.16.1.11#53
Name: www.test.com
Address: 172.16.1.11
#已解析出IP地址
[root@client-1 named]# vi /etc/resolv.conf #修改DNS服务器
# Generated by NetworkManager
nameserver 172.16.1.11
[root@client-1 named]# lynx www.test.com
步骤三:
server-1
[root@server-1 ~]# vi /etc/resolv.conf #修改DNS服务器
# Generated by NetworkManager
nameserver 172.16.1.11
[root@server-1 ~]# lynx www.test.com
步骤四:
server-1
- 安装相关包
[root@server-1 ~]# yum -y install dhcp* vsftpd tftp-server system-config-kickstart syslinux xinetd
- 修改TFTP及DHCP服务参数
[root@server-1 ~]# vi /etc/xinetd.d/tftp
server_args = -s /var/lib/tftpboot -c #指定存储路径,-c允许上传
disable = no #开启tftp
[root@server-1 tftpboot]# vi /etc/dhcp/dhcpd.conf
ddns-update-style none;
next-server 172.16.1.10; #指定TFTP服务器地址
filename "/pxelinux.0"; #引导文件TPTP上的位置
subnet 172.16.1.0 netmask 255.255.255.0 {
range 172.16.1.30 172.16.1.40;
option routers 172.16.1.10;
option domain-name-servers 8.8.8.8, 4.4.4.4;
}
- 光盘挂载
[root@server-1 ~]# mount /dev/cdrom /var/ftp/pub/ #让光盘挂载在共享目录下,让ftp客户机可以访问光盘,从而装机
- 复制网络启动所需要文件到tftp服务器的根目录下
[root@server-1 ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@server-1 ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@server-1 ~]# cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default #启动菜单
[root@server-1 ~]# cp /mnt/isolinux/vesamenu.c32 /var/lib/tftpboot/ #图形化启动菜单
[root@server-1 ~]# cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/ #linux引导加载模块
[root@server-1 ~]# cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/ #压缩内核
-
Kickstart相关参数
-
ks.cfg文件添加相关软件包
[root@server-1 ~]# vi ks.cfg
%packages
@^gnome-desktop-environment
@backup-client
@base
@compat-libraries
@core
@desktop-debugging
@development
@dial-up
@directory-client
@fonts
@gnome-apps
@gnome-desktop
@guest-agents
@guest-desktop-agents
@input-methods
@internet-applications
@internet-browser
@java-platform
@legacy-x
@multimedia
@network-file-system-client
@networkmanager-submodules
@office-suite
@print-client
@security-tools
@smart-card
@x11
kexec-tools
%end
- 将ks.cfg文件拷贝至ftp共享目录,从而让客户机可以访问
[root@server-1 ~]# cp ks.cfg /var/ftp/
- 修改安装的配置文件
[root@server-1 ~]# vi /var/lib/tftpboot/pxelinux.cfg/default
default auto
prompt 0 #无需用户选择
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://172.16.1.10/pub ks=f
tp://172.16.1.10/ks.cfg #指定图形化界面的光盘引导路径
label linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://172.16.1.10/pub #指定文本的光盘引导路径
label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://172.16.1.10/pub #指定救援模式的光盘引导路径
- 启动相关服务
[root@server-1 ~]# systemctl start dhcpd vsftpd xinetd
- 客户机修改为网卡引导即可
注:若客户机本来没有系统,不需要修改BIOS引导优先级。若修改了优先级,切记安装完将优先级改为硬盘启动,否则会无限循环安装系统
至此,PXE无人值守安装服务已完成(无需按任何按键,即可安装CentOS7系统,包括GNOME桌面)