一、准备条件:
1.两台虚拟机,一台做服务端、一台客户端以及centos7.6的iso镜像
2.虚拟机要求:内存>=4G (否则pxe安装时黑屏或者无法安装) 保证两台机器在同一局域网下也就是都是“仅主机模式”
3.虚拟网络编辑器设置,将dhcp关掉
虚拟机部分要求准备完毕,接下来开始配置服务端。
二、服务端环境搭建
1.设置客户端网口IP,如下图:
命令:vim /etc/sysconfig/network-scripts/ifcfg-ens33 ens33是我的网口名字,接下来开始编辑这个网口。
设置静态地址,同时网口开机自动启动。
2、配置yum源用来安装服务
这个如果不勾选“已连接” lsblk是看不到境像的,必须要勾上。 接下来配置YUM源
挂载点是/tmp/111
[]这里面必须要development,因为如果不是这个后面部署自动化无法选软件包,同时让yum目录只剩你配置的.repo文件,其他的移动到别处。
3、安装dhcp、tftp-server软件包
命令:yum -y install dhcp^Cftp-server,安装完毕后开始设置两个服务的配置文件,dhcp的配置文件系统默认没有,需要我们自己写,按照下图的路径会有一个举例文件,我们直接拷贝并命名成我们的dhcpd.conf文件。
开始修改:
Subnet是子网名字,一定是.0结尾的,不是你自己的地址,请注意,继续修改添加如图所示内容,请务必记住:每一行结束都必须要由“;”作结尾,C语言的写法
配置完成后重启dhcp服务,命令:systemctl restart dhcpd
继续配置tftp服务,同样也是要找到他的配置文件,vim /etc/xinetd.d/tftp 做如下修改:
接下来我们开始找上文提到的pxelinux.0这个文件在哪,通过命令查找产生这个文件的软件包名字,然后我们安装塔就行,操作如图:
可以看到,我们需要装syslinux这个包,yum -y install syslinux,随后我们需要找到这个文件拷贝到tftp的根目录去。如下操作:
这样在客户机启动时,我们的服务端通过dhcp来给客户端地址,同时dhcp服务的配置文件告诉客户机下一个服务的地址是192.168.10.10,同时去找pxelinux.0这个文件开始网络引导。
接下来就是要进一步引导网络去装系统,此时我们需要一个配置文件,继续在/var/lib/tftpboot中创建文件pxelinux.cfg/default 这个文件,default文件就是我们装系统时系统选择界面,就是下图:
那么需要找到这个文件,这个文件就在我们的挂载的镜像里
将这个文件直接拷贝改成我们的default文件,命令如下图:
核心就是配置default文件,这个文件在系统镜像的isolinux文件中,拷贝过来改名字即可。
那么菜单有了,镜像文件在哪呢。同样仍然在系统镜像的isolinux文件中。将这个文件中的所有东西都拷贝到tftp的根目录中:
其中有两个文件至关重要,如下图:
initrd.img是系统,vmlinuz是驱动等文件,不同版本系统不能通用!后面会分享这两个重要的东西,来实现一台服务端装N个系统。
此时我们就可以让客户机pxe了!!!,到此为止是不是很简单呢。
三、踩坑注意
DHCP服务和tftp服务都要起来,可以观察客户机界面提示,根据情况检查。下图这个就是找不到pxelinux.0文件,是因为dhcpd.conf文件中的filename “pxelinux.0”中要带上“/pxelinxu.0”,其次必须要要关闭防火墙以及selinux !
关闭方法:systemctl stop firewalld.service;setenforce 0 这都是临时关闭,建议永久关闭。
按照方法可以看到已经可以安装了
但是回车后一直提示有问题,如下图:
根据我的装机经验来看就是没有卷标和系统引导的镜像名字不匹配,就比如我要装的是Centos 7.5 , 系统安装认到的名字是Centos 7,所以卡住了。
问题就出在这里:
这个inst.stage2后面一串字面意思是Centos[空格]7[空格]x86_64。那么我的镜像的设备名也得是这个才行。
可惜我改了default中很多参数仍然无果,我决定放弃用HTTP了。(后面我在测试,有结果了我在更新)
四、使用HTTP作为安装源实现
1、安装http包,并进行配置
yum -y install httpd
上图就是他的配置文件了,我们打开看下,可以知道/var/www/html是他的根目录。
那么我们就可以将iso镜像挂载到这个根目录下:
如上图操作
继续更改我们的default文件,按照红帽官网的规范做一下更改:
到此终于可以安装了!!!
五、总结
时间有限,这次我就更新到pxe安装,明天继续更新无人值守安装方法实现全自动安装。