最近一段时间在网上浏览的时候发现了这个已经出现久远的自动部署操作的系统的技术了,一直想要研究研究,一直没倒出来空,这几天刚好有空就研究了一下,做出了一个文档,基本上够全面的了,大家可以看看,一起研究研究,有什么问题大家可以在评论下面提出来,我会定期看一下回复大家的。也希望大家给我推荐一些关于服务器,存储,虚拟化等相关的技术,我也研究研究跟大家交流交流。
先给大家介绍一下pxe的概述,本人也不愿意列一大长篇的字符去说明pxe,大家就知道咋回事就行,如果感兴趣可以百度一下pxe的概念。
PXE不是一种安装方式,是一种引导的方式。pxe方式要求安装的计算机中必须包含一个 支持PXE 的网卡,且主板支持网络引导
Kickstart简介:kickstart是一个利用Anconda工具实现服务器自动化安装的方法;通过生成的kickstart配置文件ks.cfg,服务器安装可以实现从裸机到全功能服务的的非交互式(无人值守式)安装配置。
环境:centos 7.6,关闭防护墙,关闭selinux
1,在服务端安装dhcp、tftp-server、httpd和syslinux服务
[root@localhost ~] yum -y install dhcp tftp-service httpd syslinux
2,配置tftp服务,编辑/etc/xinetd.d/tftp文件,查看69端口是否启用
[root@localhost ~] vim /etc/xinetd.d/tftp
[root@localhost ~] systemctl restart xinetd
[root@localhost ~]# netstat -antlupe |grep 69
![4a6e1aa189f0853fe64ea054839a8b08.gif](https://img-blog.csdnimg.cn/img_convert/4a6e1aa189f0853fe64ea054839a8b08.gif)
出现此端口证明启动成功。
3,切换到/var/lib/tftpboot/目录下,配置pxe,将/usr/share/syslinux/pxelinux.0复制到当前目录
[root@localhost ~]# cd /var/lib/tftpboot/
[root@localhost tftpboot]cp /usr/share/syslinux/pxelinux.0 .
[root@localhost tftpboot]mkdir pxelinux.cfg
4,将镜像中的isolinux目录下的所有文件cp到/var/lib/tftpboot/目录下如下图
注意:系统版本要与镜像的版本一致,server主机的系统版本为centos7.6
[root@localhost tftpboot]cp isolinux/* /var/lib/tftpboot/pxelinux.cfg/
![06766bc66e88f465b0b7c7e93c6ee86e.gif](https://img-blog.csdnimg.cn/img_convert/06766bc66e88f465b0b7c7e93c6ee86e.gif)
将该目录下的isolinux.cfg文件复制到/var/lib/tftpboot/pxelinux.cfg目录下,文件名称更改为default
[root@localhost tftpboot]# mv isolinux.cfg pxelinux.cfg/default
![ba8e83ae3649658f1bb551968ec7ccf8.gif](https://img-blog.csdnimg.cn/img_convert/ba8e83ae3649658f1bb551968ec7ccf8.gif)
5,在服务端配置dhcpd服务,编辑配置文件,重启服务.
[root@localhost ~]cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
![43208e5ef6ad75b849cb0b6abda6638b.gif](https://img-blog.csdnimg.cn/img_convert/43208e5ef6ad75b849cb0b6abda6638b.gif)
[root@localhost ~]# systemctl enable dhcpd
[root@localhost~]# systemctl restart dhcpd.service
6,在服务端测试:
测试之前需要先将测试主机调制从网络启动,然后再进行测试
![e96c21ad3a850a18206bfa47dc39c236.gif](https://img-blog.csdnimg.cn/img_convert/e96c21ad3a850a18206bfa47dc39c236.gif)
7,获取ip之后进入的界面如下图:
默认情况下系统进入的是第二个选项,黄色显示的选项
![6a946ebcad60a337766dab7293877e49.gif](https://img-blog.csdnimg.cn/img_convert/6a946ebcad60a337766dab7293877e49.gif)
,8,编辑/var/lib/tftpboot/pxelinux.cfg/default文件,可以更改进入系统安装界面的名称,也可以更改默认情况下的选项以及从网络读取镜像的位置
更改系统默认开始引导时间
![b6521c765fcb4806bebb2527151485b3.gif](https://img-blog.csdnimg.cn/img_convert/b6521c765fcb4806bebb2527151485b3.gif)
系统镜像存放点及ks配置文件存放点
![468e0bf50853a4cde5b4c476e0525926.gif](https://img-blog.csdnimg.cn/img_convert/468e0bf50853a4cde5b4c476e0525926.gif)
选择安装系统的选项之后,首先读取的是vmlinuz和initrd.img文件
vmlinuz ##系统内核文件,所有的进程都受内核控制
initrd.img ##初始化镜像文件,包含初始化过程中的所有命令文件
![dea941ae3800926c02cc797ee057c2ac.gif](https://img-blog.csdnimg.cn/img_convert/dea941ae3800926c02cc797ee057c2ac.gif)
9,在服务端安装system-config-kickstart服务
[root@localhost ~]# yum -y install system-config-kickstart
10,用system-config-kickstart命令打开图形界面,设置安装系统过程中的基本配置,如下图
(1)点击左上角file,选择模板文件
![205c735d702ff456dd437d0dde65d9cd.gif](https://img-blog.csdnimg.cn/img_convert/205c735d702ff456dd437d0dde65d9cd.gif)
(2)打开/root/anaconda-ks.cfg文件制作kickstart文件
![4b02a8a6f564112e55aa7447aba1e4d5.gif](https://img-blog.csdnimg.cn/img_convert/4b02a8a6f564112e55aa7447aba1e4d5.gif)
(3)Basic Configuration
设置语言、键盘布局、时区、密码
![54fd1b29753545dc2c2042ad9da38f30.gif](https://img-blog.csdnimg.cn/img_convert/54fd1b29753545dc2c2042ad9da38f30.gif)
(4)Installtion Method
安装方式选择http,填写http服务器地址以及yum仓库路径:192.168.32.128/centos/6
注意:http服务地址与yum仓库文件路径要分开来写
![d62721cc83c81aeaa56cb9e6d87fdc3e.gif](https://img-blog.csdnimg.cn/img_convert/d62721cc83c81aeaa56cb9e6d87fdc3e.gif)
(5)Boot Loader Options
选择默认即可
(6)Partition Infotmation
![19f925f94d1205cf7314e27565038e01.gif](https://img-blog.csdnimg.cn/img_convert/19f925f94d1205cf7314e27565038e01.gif)
第一项:清除主分区记录
第二项:移除所有存在的分区
第三项:初始化分区
第四项:根据需求自定义分区表(类似于装系统时创建分区)
![06b6e9e128f507431edc82dbd22b1aea.gif](https://img-blog.csdnimg.cn/img_convert/06b6e9e128f507431edc82dbd22b1aea.gif)
(7)Network Configuration
只需要一个网卡即可,如果已存在无需创建
![bc0d7cd66b7b2ec7d2adf1b47f8f0635.gif](https://img-blog.csdnimg.cn/img_convert/bc0d7cd66b7b2ec7d2adf1b47f8f0635.gif)
(8)Authentication
加密方式选择默认sha512加密
![09db0edbb857231014e06c3a84e01527.gif](https://img-blog.csdnimg.cn/img_convert/09db0edbb857231014e06c3a84e01527.gif)
(9)Firewall Configuration
关闭防火墙和selinux,选择disabled
![6fcec44f8677abf57be3d938b292225f.gif](https://img-blog.csdnimg.cn/img_convert/6fcec44f8677abf57be3d938b292225f.gif)
(10)Display Configuration
是否安装图形环境,根据个人需求选择,这里不安装图形环境,去掉选项前的对勾
![4b47fd0bae70609849e8e4c03d865e8d.gif](https://img-blog.csdnimg.cn/img_convert/4b47fd0bae70609849e8e4c03d865e8d.gif)
(11)Package Selection
选择安装软件包,根据需求进行勾选
![fea88abe61337da3300097f0c73fdc00.gif](https://img-blog.csdnimg.cn/img_convert/fea88abe61337da3300097f0c73fdc00.gif)
(12)Pre-Installation Script
安装前脚本,根据需求在右边白框内编写脚本
![c97951abd85079d07d3faaee3d03ed9e.gif](https://img-blog.csdnimg.cn/img_convert/c97951abd85079d07d3faaee3d03ed9e.gif)
(13)Post-Installation Script
安装后脚本:添加用户,设置密码,创建yum仓库,创建基于key的验证
![7d132ff1d21a674227fc16432a71243d.gif](https://img-blog.csdnimg.cn/img_convert/7d132ff1d21a674227fc16432a71243d.gif)
至此,kickstart文件创建完毕。
10,设置完成之后将ks.cfg文件保存到httpd的发布目录/var/www/html下,切换此目录下编辑ks.cfg文件
![2381aa22b29ad3007dc2b4ada8b1d1ee.gif](https://img-blog.csdnimg.cn/img_convert/2381aa22b29ad3007dc2b4ada8b1d1ee.gif)
配置kickstart的时候工具是没有lvm选项的,如需要使用lvm则在该配置文件下添加如下配置
# Disk partitioning information
part /boot --fstype="xfs" --size=1024
part swap --size=2048
part pv.01 --size=1 --grow
volgroup vg_group pv.01
logvol / --vgname=vg_group --size=73728 --name=lv_root
![d5c2c5bc27d0384c1d1d7643f5fb3e04.gif](https://img-blog.csdnimg.cn/img_convert/d5c2c5bc27d0384c1d1d7643f5fb3e04.gif)
11,##检查文件是否有语法性的的错误,无输出则表示ks.cfg文件无问题
[root@localhost html]#ksvalidator ks.cfg
![e50c3e5612014f631db6c0d96751da4b.gif](https://img-blog.csdnimg.cn/img_convert/e50c3e5612014f631db6c0d96751da4b.gif)
注:centos7文件是存放iso解压后的镜像包位置,可以选择解压缩,也可以选择用mount方式挂载到该文件下
![cb446da2de4622b2b78f20dd96ec605d.gif](https://img-blog.csdnimg.cn/img_convert/cb446da2de4622b2b78f20dd96ec605d.gif)
12,再到/var/lib/tftpboot目录下编辑pxelinux.cfg/default文件
系统镜像存放点及ks配置文件存放点配置
![e4ada9286f02d455b0dcf4cec7d4b1ba.gif](https://img-blog.csdnimg.cn/img_convert/e4ada9286f02d455b0dcf4cec7d4b1ba.gif)
13,重启httpd和dhcpd服务
[root@localhost html]# systemctl restart dhcpd.service
[root@localhost html]# systemctl restart httpd.service
在客户端主机上测试:
开始安装系统
![1024ffcd67714b7a907049a684a09999.gif](https://img-blog.csdnimg.cn/img_convert/1024ffcd67714b7a907049a684a09999.gif)