需求

1)准备4台虚拟机,一台Windows虚拟机PC1(不限制win7或者win10)、一台Linux服务器server1(IP是192.168.206.3/24)和一台网卡为DHCP类型的Linux服务器server2和一台空虚拟机server3。虚拟机网络均使用仅主机模式。
2)server1提供DHCP服务给PC1和server2分配对应网段的IP地址。
3)在server1安装和启动httpd服务对外提供Web服务,并搭建DNS服务负责解析域名www.kgc.com 为192.168.206.3,使得PC1能够使用域名www.kgc.com访问Web服务器。
4)在server2安装NFS服务,提供共享目录/share ,在/share目录中创建文件index.html,文件内容自定义。把server2的/share目录通过NFS挂载到server1的/var/www/html目录下,使得PC1访问Web服务时能够显示自定义的内容。
5)server1提供PXE服务,能够使server3可以自动安装Centos7 Linux操作系统。

环境

```html/xml
网段为192.168.206.0/24
1台server1 DHCP等服务206.3 ;ip
1台server2 做NFS,DHCP获取地址
1台server3 裸机装机,DHCP获取地址
一台pc win7验证DNS等服务,DHCP获取地址


## 实验操作
1、首先server1我们安装DHCP服务
![1.png](https://s2.51cto.com/images/20211206/1638795073715134.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
接着我们复制模版,覆盖空白配置文件,进配置文件里去设置
![2.png](https://s2.51cto.com/images/20211206/1638795149105976.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
里面的设置配置如下:

![2.1.png](https://s2.51cto.com/images/20211206/1638795314673402.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
![2.2.png](https://s2.51cto.com/images/20211206/1638795318570913.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
保存退出后关闭防火墙、增强服务、开启DHCPD
![2.3.png](https://s2.51cto.com/images/20211206/1638795341546892.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

2、我们先去SERVER2
我们先去改网卡改成DHCP模式,再去重启网卡
![3.1.png](https://s2.51cto.com/images/20211206/1638795557636463.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
![3.png](https://s2.51cto.com/images/20211206/1638795555996082.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
随后重启完成后我们ifconfig,发现server已经分配到ip地址了
![3.2.png](https://s2.51cto.com/images/20211206/1638795628548914.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
随后我们转向**pc1**
首先网卡如下更改,dns是为下面的http访问做准备的。随后禁用网卡再重启
![image.png](https://s2.51cto.com/images/20211206/1638795821433861.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
随后我们用ipconfig来看看,发现已经分配到ip地址了
![3.4.png](https://s2.51cto.com/images/20211206/1638795935523098.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

3、下面我们做需求(3),首先去server1,我们先安装httpd服务。**然后启动httpd(别忘记了!)**
![4.png](https://s2.51cto.com/images/20211206/1638796062395369.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
![4.1.png](https://s2.51cto.com/images/20211206/1638796064562848.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
接着我们开始做**粗体**
还是server1主机,先安装bind服务
![5.png](https://s2.51cto.com/images/20211206/1638796261199827.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

首先是vim /etc/named.conf,随后如图所示进行更改
![6.png](https://s2.51cto.com/images/20211206/1638796448575369.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
其次是vim /etc/named.rfc1912.zones,进去后如图所示更改
![6.2.png](https://s2.51cto.com/images/20211206/1638796578243430.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
最后我们首先cd /var/named
然后ls查看文件,看到named.localhost,这个文件就是我们的目标
![6.3.png](https://s2.51cto.com/images/20211206/1638796715290701.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=),
我们cp出这个文件的改名文件,然后vim进去编辑
```html/xml
cp -p named.localhost kgc.com.zone
vim kgc.com.zone

6.4.png
如图进行以下修改
6.5.png
我们启动named服务(DNS)
6.6.png
下面我们转向pc1
打开网站输入
```html/xml
www.kgc.com ;实验的测试域名

成功出现阿帕奇
![image.png](https://s2.51cto.com/images/20211206/1638797108406079.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
需求(3)就完成了

4、下面我们做需求(4)
首先去server2主机
首先是安装nfs-utils和rpcbind
![image.png](https://s2.51cto.com/images/20211206/1638797362269281.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
按照要求在根目录创建share,并赋予最高权限
![7.1.png](https://s2.51cto.com/images/20211206/1638797429290707.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
随后我们创建一个index.html文件,并进去随便写点什么

![12.png](https://s2.51cto.com/images/20211206/1638798950165284.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)![123123.png](https://s2.51cto.com/images/20211206/1638798952659299.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
之后我们去/etc/exports编辑NFS规则
![7.2.png](https://s2.51cto.com/images/20211206/1638798995996698.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
exports配置文件如下配置
![7.3.png](https://s2.51cto.com/images/20211206/1638799044986024.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
随后关闭防火墙、关闭增强服务、开启nfs、开启rpcbind
![7.3ser.png](https://s2.51cto.com/images/20211206/1638799077159042.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
最后检查一下,可以看见共享NFS已经发布了
![7.4.png](https://s2.51cto.com/images/20211206/1638799131856132.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
SER2主机就配置完成了
**然后我们去server1主机**
安装rpcbind、nfs-utils服务
关闭防火墙开启rpcbind、nfs-utils服务
![11.png](https://s2.51cto.com/images/20211206/1638799221143294.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

**注意:server1是NFS服务的客机,不用去配置exports配置文件**
下面一步我们去使用showmount查看接受文件
![7.5.png](https://s2.51cto.com/images/20211206/1638799280819876.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
确认完毕后我们开始挂载去/var/www/html
![123.png](https://s2.51cto.com/images/20211206/1638799358817603.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

现在转去PC1,验证httpd服务,可以看先pc显示出了index.html的文件内容
![1414.png](https://s2.51cto.com/images/20211206/1638799427245680.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
此时需求(4)完成!

5、现在来搞需求(5)pxe无人值守自动装机!**我们去server1主机配置!**
    首先准备好yum仓库,开始安装xinetd 、tftp-server 、dhcp 、syslinux 、vsftpd 、system-config-kickstart (一共6个安装包及其依赖关系),不再展示这些安装包的yum截图了
    然后我们去搞TFTP,首先是/etc/xinetd.d/tftp进去编辑,如图所示更改
```html/xml
wait                  no    :表示多台并发安装,yes是指装完一台再装下一台
disable               no    :表示启动TFTP服务

1.png2.png
完成之后我们启动tftp服务
3.png
下面是DHCP服务,由于需求(2)已经做过了,只需要进图修改就行
```html/xml
vim /etc/dhcp/dhcpd.conf


![2.1.png](https://s2.51cto.com/images/20211206/1638795314673402.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
![2.2.png](https://s2.51cto.com/images/20211206/1638795318570913.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
保存退出后关闭防火墙、增强服务、开启DHCPD
![2.3.png](https://s2.51cto.com/images/20211206/1638795341546892.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)

随后我们挂载光盘到/mnt中,然后cd去/mnt/images/pxeboot/中,去复制镜像、内核文件去/var/lib/tftpboot
![3.1.png](https://s2.51cto.com/images/20211206/1638800220487100.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
下面准备pxelinux引导程序,我们已经安装syslinux了,只要cp复制去/var/lib/tftpboot就行
![image.png](https://s2.51cto.com/images/20211206/1638800257513328.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
下面我们来准备FTP服务了,vsftpd已经第一部安装了
首先是先创建一个centos7目录,随后把光盘挂载进去即可
![4.png](https://s2.51cto.com/images/20211206/1638800482677306.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)![4.1.png](https://s2.51cto.com/images/20211206/1638800485486661.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
最后开启vsftpd
![4.2.png](https://s2.51cto.com/images/20211206/1638800519762772.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
下面设置引导启动会话文件default,首先是cd /var/lib/tftpboot。随后我们创建一个pxelinux.cfg目录
vim /var/lib/tftpboot、pxelinux/default 创建这个文件(由于我们是使用kickstart无人值守的,所以就直接在这步添加ks参数了)
```html/xml
default auto
prompt 0

label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.206.3/centos7 ks=ftp://192.168.206.3/ks.cfg

label linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.206.3/centos7

label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192. 168.206.3/centos7

5.png5.1.png

下面我们准备kickstart了
准备kickstart服务
打开方式:
1、可视化桌面左上角:应用程序-系统工具-kickstart
2、字符化界面:
```html/xml
system-config-kickstart 召唤出来


![6.png](https://s2.51cto.com/images/20211206/1638800945353197.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
![6.1.png](https://s2.51cto.com/images/20211206/1638800950658747.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
![6.2.png](https://s2.51cto.com/images/20211206/1638800955262798.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
![6.3.png](https://s2.51cto.com/images/20211206/1638800957618146.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
![6.4.png](https://s2.51cto.com/images/20211206/1638800962888880.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
![6.5.png](https://s2.51cto.com/images/20211206/1638800964172172.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
![6.6.png](https://s2.51cto.com/images/20211206/1638800970663449.png?x-oss-process=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=)
图中yum脚本
```html/xml
mkdir /etc/yum.repos.d/repos.bak
mv /etc/yum/repos.d/*.repo /etc/yum.repos.d/repos.bak
echo '[local]
name=local
baseurl=ftp://192.168.206.3/centos7
enabled=1
gpgcheck=0' /etc/yum.repos.d/local/repo

6.7.png
最终我保存到root家目录
随后我们去家目录
7.png

进入后我们会发现多了initial-setup-ks.cfg和ks.cfg文件。我们首先vim initial-setup-ks.cfg,进去后把第二张图的所选部分复制
退出后我们vim ks.cfg,把这个复制的内容贴到ks.cfg的最下面
保存退出,把ks.cfg复制去/var/ftp目录中。cp /root/ks.cfg /var/ftp/ks.cfg
7.png
7.1.png
777.png
7.2.png7.8.png
server1主机配置完成,下面将server3裸机放入206.0网段后即可自动获取dhcp装机
6、server3裸机开机后自动获取DHCP引导,之后自动进行装机,如果配置错误,server3会有报警提示,可自行去看
补充:我这边是kickstart无人值守自动装机,且为'wait=no'的多并发装机。也可以去vim /etc/xinetd.d/tftp,把wait=yes,改成装完一台装下一台裸机
8.png
8.1.png
8.2.png
8.3.png