kickstart无人值守安装
1、安装系统的方法
光盘(ISO文件,光盘的镜像文件)===>>每一台物理机都得给一个光驱,如果用外置光驱的话,是
不是每台机器都需要插一下
U盘:ISO镜像刻录到U盘==>>需要每台机器都需要插一下
并行安装:网络安装
自动化安装
2、linux下批量安装系统
kickstart是RedHat公司开源的软件,所以对CentOS兼容性最好。
原理:
我们将手动安装的所有的详细步骤记录到一个文件中,然后kickstart通过读取这个文件就可以实现自动化安装系统。
kickstart是一个项目的名称。没有这个软件。使用者水平是高中以上
cobbler是对kickstart的所有组件的封装。使用者水平是初中以上。本质上就是网页版本的kickstart。
2.1 PXE说明
PXE,全名Pre-boot Execution Environment,预启动执行环境;
通过网络接口启动计算机,不依赖本地存储设备(如硬盘)或本地已安装的操作系统;
由Intel和Systemsoft公司于1999年9月20日公布的技术;
客户端/Server的工作模式;
PXE客户端会调用网际协议(IP)、用户数据报协议(UDP)、动态主机设定协议(DHCP)、小型文件传输协议(TFTP)等网络协议;
PXE客户端(客户端)这个术语是指机器在PXE启动过程中的角色。一个PXE客户端可以是一台服务器、笔记本电脑或者其他装有PXE启动代码的机器(我们电脑的网卡)
2.2 kickstart原理
2.3 PXE请求顺序说明
PXE客户端发送UDP广播请求
PXE 客户端从自己的PXE网卡启动,通过PXE BootROM(自启动芯片)会以UDP(简单用户数据报协议)发送一个广播请求,向本网络中的DHCP服务器索取IP。
DHCP服务器提供信息
DHCP服务器收到客户端的请求,验证是否来至合法的PXE 客户端的请求,验证通过它将给客户端一个“提供”响应,这个“提供”响应中包含了为客户端分配的IP地址、pxelinux启动程序(TFTP)位置,以及配置文件所在位置。
PXE客户端请求下载启动文件
客户端收到服务器的“回应”后,会回应一个帧,以请求传送启动所需文件。这些启动文件包括:pxelinux.0、pxelinux.cfg/default、vmlinuz、initrd.img等文件。
TETP服务器响应客户端请求并传送文件
当服务器收到客户端的请求后,他们之间之后将有更多的信息在客户端与服务器之间作应答, 用以决定启动参数。BootROM由TFTP通讯协议从tftp服务器 下载启动安装程序所必须的文件(pxelinux.0、pxelinux.cfg/default)。default文件下载完成后,会根据该文件中定义的引导顺序,启动Linux安装程序的引导内核。
请求下载自动应答文件
客户端通过pxelinux.cfg/default文件成功的引导Linux安装内核后,安装程序首先必须确定你通过什么安装介质来安装linux,如果是通过网络安装(NFS, FTP, HTTP),则会在这个时候初始化网络,并定位安装源位置。接着会读取default文件中指定的自动应答文件ks.cfg所在位置,根据该位置请求下载该文件。
客户端安装操作系统
将ks.cfg文件下载回来后,通过该文件找到http镜像,并按照该文件的配置请求下载安装过程需要的软件包。
http镜像和客户端建立连接后,将开始传输软件包,客户端将开始安装操作系统。
安装完成后,将提示重新引导计算机。
3、 kickstart 批量安装系统实践
一般批量安装操作系统最好一次安装23台机器最佳,主要因为大部分交换机为24口,安装23台服务器没有太大的压力
3.1 环境说明
1 | [root@kickstart ~]# cat /etc/redhat-release |
3.2 安装部署DHCP
1 | [root@kickstart ~]# yum -y install dhcp |
编写配置文件
1 | cat >>/etc/dhcp/dhcpd.conf<<EOF |
配置文件解释说明
1 | range 172.16.1.100 172.16.1.199; # 可分配的起始IP-结束IP |
启动服务
1 | [root@kickstart ~]# systemctl restart dhcpd.service |
查看其日志信息: (日志位置为/var/log/messages)
1 | [root@kickstart ~]# tailf /var/log/messages |
注:配置dhcp的时候是可以配置监听的网卡,指定监听网卡
说明:此知识点与本文无关,只是作者用过这个功能,记于此。 多网卡默认监听eth0,指定DHCP监听eth1网卡
1 | [root@kickstart ~]# vim /etc/sysconfig/dhcpd |
3.3 安装配置TFTP服务
安装tftp服务
1 | [root@kickstart ~]# yum -y install tftp-server |
启动tftp服务
1 | [root@kickstart ~]# systemctl start tftp.socket |
tftp根目录
1 | [root@kickstart ~]# cd /var/lib/tftpboot/ |
3.4 创建一个新的空白虚拟机
说明:Centos7.5安装系统至少需要2G内存,低于2G将无法安装,不要选择镜像,之后启动虚拟机
启动发现又tftp但是没找到要加载的系统。上面报错是在TFTP服务的根目录找不到启动文件pxelinux.0
4.5 获取pxelinux.0系统
syslinux是一个功能强大的引导加载程序,而且兼容各种介质。SYSLINUX是一个小型的Linux操作系统,它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。如果没有找到pxelinux.0这个文件,可以安装一下。
1 | [root@kickstart tftpboot]# yum install -y syslinux |
复制pxelinux.0文件到tftp根目录
1 | [root@kickstart tftpboot]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ |
启动虚拟机
首先排除最简单故障原因:selinux是否关闭,防火墙是否关闭
上面的错误是因为pxelinux.0这个小系统的配置文件(default)不存在,或者文件名不对
4.6 添加pxelinux.0配置文件
给虚拟机添加上centos7的镜像,注意实在kickstart服务端添加
将镜像挂载上
特别说明:由于这是测试环境可以使用挂载,在生产环境中必须把镜像中的文件复制到硬盘上,光驱速度太慢。
1 | [root@kickstart ~]# mkdir -p /var/www/html/Centos-7/ |
将镜像中的相关文件复制到tftp根目录
1 | [root@kickstart ~]# cp -a /var/www/html/Centos-7//isolinux/* /var/lib/tftpboot/ |
修改default配置文件实现通过网络安装操作系统
CentOS7.X 网络安装的关键点,修改default文件
1 | [root@kickstart tftpboot]# vim /var/lib/tftpboot/pxelinux.cfg/default |
修改完成后,重启pxe客户端,就会有安装界面,与使用光盘安装一致,这里就不是做详细的记录了。注意实现网路安装需要将下一步完成(配置http服务)。
CentOS7实现自动化安装的default文件
1 | [root@kickstart ~]# cat /var/lib/tftpboot/pxelinux.cfg/default |
4.7 配置httpd服务
安装apache服务
1 | [root@kickstart tftpboot]# yum install httpd -y |
启动apache服务
1 | [root@kickstart tftpboot]# systemctl start httpd.service |
通过浏览器访问,或使用curl命令镜像访问
1 | http://10.0.0.201/Centos-7/ |
4、ks文件说明
4.1 ks文件的作用
通常,我们在安装操作系统的过程中,需要大量的和服务器交互操作,为了减少这个交互过程,kickstart就诞生了。使用这种kickstart,只需事先定义好一个Kickstart自动应答配置文件ks.cfg(通常存放在安装服务器上),并让安装程序知道该配置文件的位置,在安装过程中安装程序就可以自己从该文件中读取安装配置,这样就避免了在安装过程中多次的人机交互,从而实现无人值守的自动化安装。
4.2 ks文件生成的三种方式
方法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,RHEL5).网上有很多用CentOS桌面版生成ks文件的文章,如果有现成的系统就没什么可说。但没有现成的,也没有必要去用桌面版,命令行也很简单。
方法3
阅读kickstart配置文件的手册。用任何一个文本编辑器都可以创建你自己的kickstart配置文件。
4.3 centos7.5 自动应答文件(ks)
创建ks文件存放目录
1 | [root@kickstart ~]# mkdir -p /var/www/html/ks_config |
编写ks文件
1 | kickstart之中rootpw密码生成方法 |
上面的事情做完以后就可以批量安装系统了,装了几台之后你就会发现,新装完系统的主机IP地址都是一样的,我们可不可以让其ip不重复呢?可不可以装完系统再对系统进行优化呢?
优化一下ks文件和优化系统的及脚本
1 | [root@kickstart ks_config]# cat CentOS7-ks.cfg |
优化的脚本
1 | [root@kickstart ks_config]# cat optimize.sh |