使用KickStart进行CentOS7.4 的自动部署安装
https://blog.51cto.com/12639039/2132262
随着网络的发展以及对服务器性能得需求不断增加,自动化运维成了运维人员必须掌握的技能之一,自动化运维省时省力。今天就记录一下最基础的操作系统安装自动化--使用KickStart批量安装CentOS7.4操作系统。
实验环境:
CentOS7.4 安装光盘、一台CentOS7.4系统的服务器,一台支持PXE未安装操作系统的客户端。
要通过网络安装,就要确定客户端能自动获取到IP地址。
首先安装DHCP服务器并进行配置,我这里已经安装:
配置如下:
pxelinux.0是一个bootloader,类似于grub,通过它来加载系统安装引导程序,我们可以在它的配置文件中指定内核的位置和内核的启动参数
配置完成重启服务:
下面要安装TFTP,方便客户端获取引导文件,同样我已经安装完毕:
把disable设置为no 开启TFTP:
重启服务:
继续安装Apache服务并启动,让引导程序通过HTTP方式获取到光盘镜像:
为了方便我在网站根目录下创建了一个文件夹,把光盘镜像直接挂载上了:
访问测试:
syslinux是一个功能强大的引导加载程序,而且兼容各种介质。下面安装syslinux,得到pxelinux.0 这是pxe的引导加载程序
下面把pxelinux.0 和引导菜单程序放到TFTP根目录下:
再创建一个名为pxelinux.cfg的文件夹把光盘内安装系统时用到的引导菜单配置文件放进去:
此时开启客户端就可以进到系统的引导安装界面:
选择安装选项,此时就可以手动安装操作系统了,由于我并没有在引导菜单配置文件default中指定光盘镜像的网络位置,因此无法进行接下来的安装,可以在引导菜单配置文件中指定网络镜像位置来进行手动安装。
上面的步骤虽然繁杂,但也仅仅是能够让客户端进行网络引导而已,而下面我们要做的就是如何让系统按照我们的要求进行自动安装:
下面贴一个ks.cfg文件的介绍:
通常,我们在安装操作系统的过程中,需要大量的和服务器交互操作,为了减少这个交互过程,kickstart就诞生了。使用这种kickstart,只需事先定义好一个Kickstart自动应答配置文件ks.cfg(通常存放在安装服务器上),并让安装程序知道该配置文件的位置,在安装过程中安装程序就可以自己从该文件中读取安装配置,这样就避免了在安装过程中多次的人机交互,从而实现无人值守的自动化安装。
生成kickstart配置文件的三种方法:
方法1、 每安装好一台CentOS机器,CentOS安装程序都会创建一个kickstart配置文件,记录你的真实安装配置。如果你希望实现和某系统类似的安装,可以基于该系统的kickstart配置文件来生成你自己的kickstart配置文件。(生成的文件名字叫anaconda-ks.cfg位于/root/anaconda-ks.cfg)。
方法2、CentOS提供了一个图形化的kickstart配置工具。在任何一个安装好的Linux系统上运行该工具,就可以很容易地创建你自己的kickstart配置文件。kickstart配置工具命令为redhat-config-kickstart(RHEL3)或system-config-kickstart(RHEL4以后).网上有很多用CentOS桌面版生成ks文件的文章,如果有现成的桌面系统就很容易生成。但没有现成的,就可以选择方法3。
方法3、阅读kickstart配置文件的手册。用任何一个文本编辑器都可以创建你自己的kickstart配置文件。
下面我们就说一下使用时生成的anaconda-ks.cfg文件来进行部署安装,下一篇我会专门开一个博文记录手动生成自己的kickstart配置文件。
首先编辑default文件:
保存后复制/root/下的anaconda-ks.cfg到 default中指定的位置:
编辑这个文件,在前边添加网络安装并指定系统镜像位置:
保存退出后启动未安装操作系统的虚拟机:
发现自动安装已经开始:
冲杯咖啡,静待安装完成。