0. 环境部署前的准备
1.rhel7的主机
2.开启主机图形
3.配置网络可用
4.关闭vmware dhcp功能
5.关闭防火墙以及selinux
getenforce要为disable状态
grubby --update-kernel ALL --args selinux=0
systemctl disable --now firewalld
1.kickstart自动安装脚本制作
我们想要让其他主机部署安装源则需要anaconda-ks.cfg文件此文件记录对操作系统的配置,而system-config-kickstart就是生成这个文件的工具
生成好安装源后,通过httpd服务将安装源分享出去
1.1软件安装
[root@localhost ~] cat /root/anaconda-ks.cfg#此文件是在系统安装好后自动生成的,这个文件记录了系统在安装过程中的所有设定
[root@localhost ~] dnf install system-config-kickstart#安装图形化生成kickstart自动化安装脚本工具
[root@localhost ~] system-config-kickstart#启动图形制作工具
1.2图形界面选择及配置
通过网络分享安装源
安装后执行的脚本
1.3配置网络分享
[root@rhel ~] yum install httpd -y#下载httpd
[root@rhel ~] systemctl enable --now httpd#开启Apache
此时我们需要将挂载的软件仓库目录软连接至发布目录/var/www/html下
[root@rhel ~] ln -s /rhel7 /var/www/html/
此时访问主机ip加路径就可以看到内容,如果没有,需要检查挂载以及软件仓库
1.4配置要共享的安装源文件
需要加软件安装包
@base:软件组
httpd:软件包的名称
写完后检查是否有错误
[root@rhel ~] ksvalidator ks.cfg
因为是共享给其他的主机,所以我们需要将写好的安装源文件共享出去
[root@rhel ~] cp /root/ks.cfg /var/www/html/
此时安装一个新的虚拟机在开启选择界面按tab在quit后面添加安装源的路径
ks=http://172.25.254.100/ks.cfg
但此时并不能完成安装,因为没有人给这台新的主机分配ip,于是需要在服务器部署dhcp服务
2.搭建dhcp服务并测试
在我们的生产环境中不可能去使用VMware分配ip,于是需要在这套环境中搭建dhcp
2.1安装dhcp服务
安装dhcp的作用是为其他的服务器提供分配ip的功能,前提是其他服务器网卡必须设定dhcp模式
[root@rhel ~] yum install dhcp -y
2.1.1用命令生成配置文件并编辑
此时找到dhcp的主配置文件,根据提示将配置文件中的提示复制到配置文件中
\cp -f /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
#"\":转义符,执行真实的cp命令
此时进入它的配置文件,配置文件中37行以后的内容删除,注释掉27,28行,并更改以下信息
做完配置后启动dhcp服务
systemctl enable --now dhcpd
[root@rhel ~]cat /var/lib/dhcpd/dhcpd.leases
#此处记录了服务器将哪个ip地址给了谁
此时就可以完成自动安装了,但此时的主机是由光盘引导的,但是在企业中,不可能在每一台主机上去安装光盘 。
2.2现在要解决的问题(pxe)
机房中要部署200台主机,现在一台已经有系统了,我们在这台主机中做了很多的设定,然后让它把资源共享出去,让其他的主机读取资源。
这时的主机是没有系统的,但它是通过网卡启动的(在启动虚拟机时让它从网卡启动),选择网卡启动后,它会向有系统的主机索要IP,此时这个主机的dhcp会给索要ip的主机传递数据包,数据包中有IP,但除了IP我们还可以传递其他的东西,可以给他一个文件路径,让它用得到的ip去访问这个路径,然后我们就可以在这个文件中做设置了,让它下一步读取哪些资源,这一整个流程称为pxe,而它读取的文件叫做pxelinux.0(这个文件的作用就是指引下一步做哪些文件的读取)
下一步要读取什么呢?我们需要找到开机后的选择界面,找到这个界面就可以搞定安装环境了,这个界面在我们的安装盘里
3.搭建pxe网络安装环境实现服务器自动部署
3.1找到安装盘
读取内核然后读取初始化镜像,启动了我们的环境
isolinux.cfg就是界面文件,我们需要做的就是在读取完内核后,将它本来要读取的光盘改为网络的
第一步,我们需要把isolinux通过网络共享出去;第二步,编辑isolinux.cfg里面的东西
3.2安装环境中所需要的基本配置
yum install syslinux.x86_64 -y
下载好这个软件后,查找这个软件中含有pxelinux.0的文件
[root@rhel ~] rpm -ql syslinux | less
这个就是dhcp向外发送数据包时携带的那个信息文件,这个信息文件指引后面要读取什么东西
/usr/share/syslinux/pxelinux.0
查看帮助文档
[root@rhel ~] vim /usr/share/doc/syslinux-4.05/pxelinux.txt
pexlinux.0的功能是,让要装系统的主机去访问/tftpboot/pexlinux.cfg/底下的default文件,于是我们需要在这个文件里写界面的标题以及网址等
此时我们需要安装tftp,用他共享pxelinux.0数据文件的网络服务
yum install tftp-server.x86_64 -y
启动tftp服务
systemctl enable --now tftp
我们要将所有的东西放到它的数据目录下,我们要放在界面中看到的一切资源,将光驱的东西全部拷贝进来
[root@rhel ~] cp /rhel7/isolinux/* /var/lib/tftpboot/
[root@rhel ~] cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
由帮助文档可知,它需要我们在tftpboot下建立一个pxelinux.cfg,这里面要包含default文件,这个文件也是pxelinux.0让客户最终读取的文件
[root@rhel tftpboot] cp isolinux.cfg pxelinux.cfg/default
#将包含界面的文件拷贝到default中
整个环境配置好后,我们需要更改DHCP的配置文件/etc/dhcp/dhcpd.conf
此时进入[root@rhel pxelinux.cfg]# cat /var/lib/tftpboot/pxelinux.cfg/default
就可以看到要加载的资源,以及下载什么东西
重启服务服务
systemctl restart dhcpd
可以进入default改默认选择哪条(menu default)
做完以上操作后,就将启动改为网卡启动,开始自动化安装,安装好后会一直循环则需要在一次循环结束后,关机进入开机启动项,将网卡启动改为硬盘启动,此时pxe环境下的无人值守自动化安装就完成了