大家好,今天分享一下在centos linux上部署pxe服务器来实现自动化的装机
关于这个东西的话,记住一点就可以了
就是pxe可以给很多服务器自动的安装操作系统,这样省时省力
这是pxe服务器的工作流程 (我个人觉得他已经很详细了)
![在这里插入图片描述](https://img-blog.csdnimg.cn/37472528d0dd49bc96ff38fe240a6aed.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5oCd6K-a5Luj56CB5Z2X,size_20,color_FFFFFF,t_70,g_se,x_16)
下面来做一下这个
我们pxe服务器的ip地址是192.168.1.12
使用远程终端来连一下服务器
![在这里插入图片描述](https://img-blog.csdnimg.cn/3bb641b64103407a87d3de1832fdeeb0.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5oCd6K-a5Luj56CB5Z2X,size_20,color_FFFFFF,t_70,g_se,x_16)
因为我们使用网络yum 源的方式来安装软件
所以,我们要看一下服务器的网络是否有问题
[root@localhost ~]# ping www.baidu.com
PING www.a.shifen.com (180.101.49.11) 56(84) bytes of data.
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=1 ttl=128 time=42.2 ms
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=2 ttl=128 time=29.1 ms
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=3 ttl=128 time=23.0 ms
64 bytes from 180.101.49.11 (180.101.49.11): icmp_seq=4 ttl=128 time=18.5 ms
^C
--- www.a.shifen.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 4115ms
rtt min/avg/max/mdev = 18.545/28.257/42.227/8.907 ms
[root@localhost ~]#
这样网络就会没问题的
安装dhcp服务
[root@localhost ~]# yum install dhcp -y
安装Apache
[root@localhost ~]# yum install httpd -y
安装syslinux
[root@localhost ~]# yum install syslinux -y
安装tftp服务器端程序
[root@localhost ~]# yum install tftp-server.x86_64 -y
看dhcp目录
[root@localhost ~]# cd /etc/dhcp/
[root@localhost dhcp]# ll
总用量 8
drwxr-xr-x. 2 root root 37 6月 10 2021 dhclient.d
drwxr-xr-x. 2 root root 28 4月 20 12:08 dhclient-exit-hooks.d
-rw-r--r--. 1 root root 120 6月 10 2021 dhcpd6.conf
-rw-r--r--. 1 root root 117 6月 10 2021 dhcpd.conf
drwxr-x---. 2 root dhcpd 28 4月 20 12:08 scripts
这是dhcp的主配置文件
[root@localhost dhcp]# cat dhcpd.conf
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example
# see dhcpd.conf(5) man page
#
一看什么都没有
拷贝一个现成的模板到我们dhcp主配置文件当中
[root@localhost dhcp]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example ./dhcpd.conf
cp:是否覆盖"./dhcpd.conf"? y
[root@localhost dhcp]#
编辑dhcp主配置文件
[root@localhost dhcp]# vim dhcpd.conf
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.13 192.168.1.40;
default-lease-time 3600;
filename "pxelinux.0";
next-server 192.168.1.12;
我们要这几个
截图
![在这里插入图片描述](https://img-blog.csdnimg.cn/f9a2412268b1498ea66aabf93c212e16.png)
重启dhcp服务
[root@localhost dhcp]# systemctl restart dhcpd
进入到TFTP指定目录
[root@localhost ~]# cd /etc/xinetd.d/
[root@localhost xinetd.d]# ls
tftp
[root@localhost xinetd.d]#
编辑这个文件
[root@localhost xinetd.d]# vim tftp
改一下这个配置 写成no就可以了
![在这里插入图片描述](https://img-blog.csdnimg.cn/f2cf79317c2d4c38aa8e7d378d03479c.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5oCd6K-a5Luj56CB5Z2X,size_20,color_FFFFFF,t_70,g_se,x_16)
重启tftp服务
[root@localhost xinetd.d]# systemctl restart tftp.socket
看一下状态
[root@localhost xinetd.d]# systemctl status tftp.socket
● tftp.socket - Tftp Server Activation Socket
Loaded: loaded (/usr/lib/systemd/system/tftp.socket; disabled; vendor preset: disabled)
Active: active (listening) since 三 2022-04-20 13:27:17 CST; 45s ago
Listen: [::]:69 (Datagram)
4月 20 13:27:17 localhost.localdomain systemd[1]: Listening on Tftp Server Activation Socket.
4月 20 13:27:17 localhost.localdomain systemd[1]: Starting Tftp Server Activation Socket.
注意看这个目录
![在这里插入图片描述](https://img-blog.csdnimg.cn/7978ffaf140f41678425eb7b24749060.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5oCd6K-a5Luj56CB5Z2X,size_20,color_FFFFFF,t_70,g_se,x_16)
进入指定目录
[root@localhost xinetd.d]# cd /var/lib/tftpboot/
[root@localhost tftpboot]# ls
[root@localhost tftpboot]#
![在这里插入图片描述](https://img-blog.csdnimg.cn/bb9ebe412b2c4c018eda482eb6628b81.png)
[root@localhost tftpboot]# cp /usr/share/syslinux/pxelinux.0 ./
![在这里插入图片描述](https://img-blog.csdnimg.cn/c0c2c20ed046407dae85478e80fbe565.png)
这是菜单文件
[root@localhost tftpboot]# cp /usr/share/syslinux/menu.c32 ./
新建一个挂载点
[root@localhost tftpboot]# mkdir /media/cdrom/
实现挂载
[root@localhost tftpboot]# mount /dev/cdrom /media/cdrom/
mount: /dev/sr0 写保护,将以只读方式挂载
把光盘下的引导文件拷贝到当前目录下(安装)
[root@localhost tftpboot]# cp /media/cdrom/isolinux/vmlinuz ./
[root@localhost tftpboot]# cp /media/cdrom/isolinux/initrd.img ./
[root@localhost tftpboot]#
现在这个目录下就有了四个文件
![在这里插入图片描述](https://img-blog.csdnimg.cn/e614838560654fbb83a384cdd06e0c45.png)
新建这个目录(这个文件名是一定要这样写的)
[root@localhost tftpboot]# mkdir pxelinux.cfg
进入改目录
[root@localhost tftpboot]# cd pxelinux.cfg/
创建文件
[root@localhost pxelinux.cfg]# touch default
[root@localhost pxelinux.cfg]# ls
default
编辑default这个文件
[root@localhost pxelinux.cfg]# vim default
把这个复制进去就可以了,地址改成你自己的就可以了
default menu.c32
timeout 300
prompt 0
label 1
menu label ^1) Install CentOS7
menu default
kernel vmlinuz
append initrd=initrd.img method=http: //192.168.1.12/CentOS7 ks=http://192.168.1.12/ks.cfg
重启Apache
[root@localhost pxelinux.cfg]# systemctl restart httpd
进入这个目录
[root@localhost pxelinux.cfg]# cd /var/www/html/
这个不用管,这只是随意写的一个测试脚本文件,与这个部署没有关系
[root@localhost html]# ls
testphp.php
![在这里插入图片描述](https://img-blog.csdnimg.cn/39a682abe9ef43209770966ff16fa8f9.png)
挂载
[root@localhost html]# mount /dev/cdrom /var/www/html/CentOS7/
这样就可以看见光盘的内容
[root@localhost html]# cd CentOS7/
[root@localhost CentOS7]# ls
CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7
EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL
[root@localhost CentOS7]#
浏览器测试:(Apache服务器正常)
![在这里插入图片描述](https://img-blog.csdnimg.cn/3695664753a14d92bf9fefe6a451d037.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5oCd6K-a5Luj56CB5Z2X,size_20,color_FFFFFF,t_70,g_se,x_16)
这个时候,在浏览器上可以访问到光盘的文件
![在这里插入图片描述](https://img-blog.csdnimg.cn/b96c8b38a2b94d6381c33f86b498d6a3.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5oCd6K-a5Luj56CB5Z2X,size_20,color_FFFFFF,t_70,g_se,x_16)
在root目录下
![在这里插入图片描述](https://img-blog.csdnimg.cn/5ec4c72e68904f489f17ee2be251682c.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5oCd6K-a5Luj56CB5Z2X,size_20,color_FFFFFF,t_70,g_se,x_16)
将这个文件拷贝到/var/www.html下
[root@localhost ~]# cp anaconda-ks.cfg /var/www/html/
将指定文件改个名
[root@localhost ~]# cd /var/www/html/
[root@localhost html]# ls
anaconda-ks.cfg CentOS7 testphp.php
[root@localhost html]# mv anaconda-ks.cfg ks.cfg
浏览器访问,会有一个403的错误,因为我们的权限不够
![在这里插入图片描述](https://img-blog.csdnimg.cn/2f583452af61448b896f9dedda9db626.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5oCd6K-a5Luj56CB5Z2X,size_20,color_FFFFFF,t_70,g_se,x_16)
加一个读取权限
[root@localhost html]# chmod +r ks.cfg
![在这里插入图片描述](https://img-blog.csdnimg.cn/a173ffafce6447b3bfce3a421990cd3e.png)
现在访问就是正常的(这是自动脚本的文件)
![在这里插入图片描述](https://img-blog.csdnimg.cn/6575d695027443728730335c51099dd4.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5oCd6K-a5Luj56CB5Z2X,size_20,color_FFFFFF,t_70,g_se,x_16)
编辑这个文件
[root@localhost html]# vim ks.cfg
注销掉第五行
![在这里插入图片描述](https://img-blog.csdnimg.cn/8f50815976a1472598cfcb417d27f947.png)
加上这一行
![在这里插入图片描述](https://img-blog.csdnimg.cn/96b6c93889994e6c8b7e3ca1e9361e4f.png)
把这个图形化注释掉
![在这里插入图片描述](https://img-blog.csdnimg.cn/fdd11d069ae547449222152a673012d1.png)
使用文本安装
![在这里插入图片描述](https://img-blog.csdnimg.cn/6891a2943cf0460cbd1057d1155d6029.png)
把第36行也注释掉
![在这里插入图片描述](https://img-blog.csdnimg.cn/8a01c2c84ec24cbf95bf232dabad21f7.png)
这样写
![在这里插入图片描述](https://img-blog.csdnimg.cn/db72f6e1cb6b485bb945ab2a787168b4.png)
在最后加上重启的命令
![在这里插入图片描述](https://img-blog.csdnimg.cn/28c3740bd1dc4f9d984bd6fd444bb8df.png)
重启服务
[root@localhost html]# systemctl restart httpd.service
[root@localhost html]# systemctl restart tftp.socket
[root@localhost html]# systemctl restart dhcpd
新建一个虚拟机
![在这里插入图片描述](https://img-blog.csdnimg.cn/3440bb314c894886920779de482ea65d.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5oCd6K-a5Luj56CB5Z2X,size_20,color_FFFFFF,t_70,g_se,x_16)
![在这里插入图片描述](https://img-blog.csdnimg.cn/7eb15aec4b29419183372d2ba255b615.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5oCd6K-a5Luj56CB5Z2X,size_20,color_FFFFFF,t_70,g_se,x_16)
![在这里插入图片描述](https://img-blog.csdnimg.cn/08a92e6f2a424ed6a306d77c08a1944e.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5oCd6K-a5Luj56CB5Z2X,size_20,color_FFFFFF,t_70,g_se,x_16)
![在这里插入图片描述](https://img-blog.csdnimg.cn/a82d0d79a6544eaa942e286ecd91a6bb.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5oCd6K-a5Luj56CB5Z2X,size_20,color_FFFFFF,t_70,g_se,x_16)
到这里,pxe就可以部署成功了,谢谢大家