什么是kickstart?

目录

 

什么是kickstart批量安装

什么是Cobbler?

Kickstart中的各模块

Kickstart如何配置

kickstart如何使用? 

Kickstart工作流程图 

 kickstart应用场景


什么是kickstart批量安装

Kickstart是一种无人值守的安装方式之一(还有一种叫做Cobbler)。他的工作原理就是在安装过程中记录人工干预填写的各种参数,并生成一个名为ks.cfg的文件。如果在自动安装过程中出现要填写参数的情况,安装程序就会首先去查找ks.cfg文件,如果找到合适的参数,就采用所找的参数;如果没有找到,便弹出对话框让安装着手动书写。所以,ks.cfg文件涵盖了所有安装过程中需要填写的参数。那么安装者现在只需要告诉安装程序从何处下载ks,cfg文件,剩下的交给kickstart就可以完成安装操作系统这个事情。等安装完毕之后,安装程序根据ks.cfg中设置的重启/关闭系统,并结束安装。

什么是Cobbler?

Cobbler集中和简化了通过网络安装操作系统需要使用道德DHCP,TFTP和DFS服务的配置。简单说:Cobbler是对kickstart的封装,简化了安装步骤。(本博客只讲述kickstart)

Kickstart中的各模块

上边介绍了,kickstart它只是一种安装方式,与硬盘安装和磁盘安装没有区别,可以说是同等概念的一种安装方式。磁盘和硬盘安装都是需要iso文件的,那么kickstart这种安装方式的操作系统文件从哪里来?由通过什么样的方式或者说过程把系统安装上?下面写一个公式:kickstart安装方式=DHCP+TFTP+FTP(有些会选择使用NFS)+PXE。

DHCP:动态主机配置协议。DHCP服务器可以给DHCP用户分配IP地址,这个IP地址是临时的。有一个租用期,由DHTP服务器通过配置决定。

TFTP:基于UDP(用户数据包协议)一种简单文本传输协议.(和FTP大同小异)如果想用linux搭建TFTP服务器用TFTP传输协议来传输数据的话,就必须在linux上安装TFTP服务软件,并做响应的配置。

FTP:基于TCP(传输控制协议)的文本传输协议。在进行文本传输时,FTP的客户和服务器之间要建立两个并行的TCP连接:控制连接和数据连接。控制连接在整个会话过程中一直保持打开,FTP客户所发出的传送请求通过控制连接发送给服务器端的控制进程,但是控制连接并不用来传送文件。当控制进程在接收到FTP客户发来的文件传输请求之后,穿件一个“数据传输进程”和“数据连接”,用来连接客户端和服务器端的数据传送进程。数据传输进程用于完成文件的传送。在传送完毕后关闭“数据连接”并结束进程的运行。当控制其原理图如下:

什么是kickstart?_第1张图片

NFS:FTP并不是对所有的数据传输都是最好的。如果A计算机只是想在B的一个很大的文件的末尾田间一行信息。则使用FTP协议的话B就要先将文件发送给A,A添加信息之后,再用FTP将其传送给B,效率低。而NFS允许应用进程打开一个远地文件,并在该文件上的某一位置开始读写数据,所以它可以让用户只复制一个大文件的一个很小的一段,而不是将整个文件复制。对于上述例子:A中的NFS客户短剑把要添加的数据和在文件后面写数据的请求一起发送到B的NFS服务器,NFS服务器更新文件后返回一个应答信息即可。

PXE:属于硬件自带的预启动执行环境。Inter研发的一门技术,基于Client/Server的网络模式(即客户端与服务器),其被写入了Inter的CPU,只要是使用Inter的CPU,则BIOS里都支持PXE技术。支持远程主机通过网络从远程服务器下载镜像(下载后存储到了客户端主机的存储空间中),并由此支持通过网络启动操作系统。即:PXE可以引导和安装Linux ,windows等操作系统。

Kickstart如何配置

1.安装DHCP,TFTP服务器软件(要想使用DHCP TFTP协议就要安装相应软件做支持)

yum install -y dhcp*  tftp*

2.配置TFTP服务

       vi /etc/xinetd.d/tftp

       #将“disable       = yes”改成:“disable       = no” 用于开启此服务

3.TFTP+PXE配置

       要实现远程安装系统,首先需要再tftpboot目录指定相关PXE内核模块及相关参数。

       第一步:

什么是kickstart?_第2张图片

mount  /dev/cdrom /mnt 
#挂载本地光盘(挂载:利用一个目录当成进入点,将磁盘分区的数据放置在该目录下。即:进入该目录就是读取磁盘的该分区)

 下图表示挂在成功:

 第二步:

ln -s /var/lib/tftpboot / 
#将/var/lib/tftpboot 软链接到根目录/下(/var/lib/tftpboot目录在tftp服务器软件安装好之后会自动生成。软链接类似于windows下的快捷方式.如果是centos5.x,默认tftpboot目录自动创建到/目录下)

 

 

第三步:

cd /tftpboot ; cp /usr/lib/syslinux/pexlinux.0 ./ 
#将网卡启动引导文件pexlinux.0拷贝到/tftpboot 注:如果找不到pexlinux.0则:
yum install syslinux 
然后就会自动生成文件pexlinux.0

 第四步:

#将所挂载的光盘上的内容拷贝到tftpboot (. 代表当前目录即tftpboot)
cp /mnt/images/pxeboot/vmlinuz . 
cp /mnt/images/pxeboot/initrd.img .

 第五步:

#在tftpboot下创建pexlinux.cfg目录
mkdir -p pxelinux.cfg

第六步:

cd pxelinux.cfg #切换到pxelinux.cfg
vi default #创建一个default文件并打开进行编辑

default文件的作用:通过系统安装时,根据此文件的配置启动相关选项(此文件也可以选择拷贝:cp /mnt/isolinux/isolinux.cfg pxelinux.cfg/default )

其内容编辑为:

default linux #默认找linux的引导
prompt 1
timeout 10
display boot.msg
#F1--F5都是启动的时候的菜单
F1 boot.msg
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg
label centos5.8#(如果设置成linux 即和default一致的话,那么每一个局域网内的用户开机都会安装这个系统,那就很危险。所以要设置成不一样。然后当安装系统的时候要求用户输入boot: ,这时候再把centos5.8这个数输进去)
kernel vmlinuz  #加载镜像
#使用nfs的方式做一个共享 这里就相当于去读取ks.cfg共享文件去安装系统
#ks.cfg里面有Linux分区,密码等等
#启动的网卡是eth0
#initrd=initrd.img表示加载这个镜像initrd英文是镜像的意思
append ks=nfs:192.168.0.79:/centosinstall/ks.cfg ksdevice=eth0 initrd=initrd.img
label text
kernel vmlinuz
append initrd=initrd.img text
label ks
kernel vmlinuz
append ks initrd=initrd.img
label local
localboot 1
label mentest86
kernel mentest
append –

 上述内容中:

       #192.168.0.79是kickstart服务器,/centosinstall是nfs共享linux镜像的目录,也是linux存放安装文件的路径,ks.cfg是kickstart的主配置文件;ksdevice=eth0代表当我们由多块网卡的时候,要实现自动化安装设置从eth0安装。

第七步:

TFTP配置完毕由于TFTP是非独立服务,需要以来xinetd服务来启动。启动命令:

ckconfig tftp –leve.l 35 on && service xinetd restart 

 4.NFS+kickstart配置

远程系统安装,客户端需要下载系统所需要的软件包,所以需要使用NFS或者httpd把镜像文件共享出来

          (1)在pexlinux.cfg下创建centosinstall目录(与default文件中的内容对应)

mkdir -p /centosinstall

(2)在centosinstall下创建ks.cfg文件

 (3)将光盘中所有的文件拷贝到/centosinstall下(nohup表示后台拷贝 拷贝完成之后会有以下提示信息):

nohup cp -rf /mnt/* /centosinstall &

 (4) 在NFS配置文件/etc/exports中加入:/centosinstall *(rw,sync),表示允许任何主机访问/centosinstall目录,有读写权限

ehco “/centosinstall  *(rw,sync)“ >>/etc/exports

 (5)向ks,cfg中写入内容:

#Kickstart file automatically generated by anaconda
	install
	text#表示以字符这种界面来安装
	nfs --server=192.168.33.10 -dir=/centosinstall #nfs共享的IP和共享目录
	key –skip
	lang zh_CN.UTF-8 #语言编码使用UFTF-8
	keyboard us #键盘使用默认的us
	network --device eth0 --bootproto-dhcp --noipv6
	rootpw 123456 #root用户的密码
	firewall –disabled #防火墙
	authconfig –enableshadow –enablemd5
	selinux –disabled #sel关闭inux
	timezone Asia/Shanghai #时区
	bootloader –location=mbr –driveorder=sda –append=”rhgb quiet”
	clearpart –all –initlabel #格式化所有的硬盘
	part /boot –fstype ext3 –size=200 #/boot分区200M
	part swap –size=2000
	#part / --fstype ext3 –size=80000
	part / –fstype ext3 –size=1 –grow #使用所有剩余空间用于/
	#下面这些东西要选择在root目录下的anaconda-ks.cfg文件中拷贝然后放在ks.cfg文件的最后面 以下是软件的配置包
	%packages
	%base
	@chinese-support
	@core
	@debugging
	………
	@end

 5.DHCP配置以及设置

Pxe+kickstart自动安装系统需要用到DHCP分配的客户端的IP地址

vi /etc/dhcp/dhcpd.conf

 其内容为:

ddns-update-style interim;
	ignore client-updates;
	next-server 192.168.33.10; #配置kickstart服务端的IP
	filename “pxelinux.0”;
	allow booting;
	allow bootp;
	subnet 192.168.33.0 netmask 255.255.255.0 {
option routers 192.168.33.1;
option subnet-mask 255.255.255.0;
range dynamic-bootp 192.168.33.100 192.168.33.200; #可分配的起始IP-结束IP
default-lease-time 21600; #设置默认的IP租用期限
max-lease-time 43200; #设置最大的IP租用期限
next-server 192.168.33.10; #告知客户端TFTP服务器的IP
filename "/pxelinux.0"; #告知客户端从TFTP根目录下载
}

 什么是kickstart?_第3张图片

 6.重启所有的服务

	 /etc/init.d/nfs restart #重启 nfs
	 /etc/init.d/xined restart #重启tftp
	 /etc/init.d/dhcpd restart #重启dhcp

kickstart如何使用? 

首先要使用安装系统的主机要和配置好kickstart的主机在同一局域网内.

当主机打开的时候,使用相对应的F*键(不同品牌的机器快捷键不同)进入boot引导开机系统的选择界面,然后选择网络控制器进行安装即可。如下:

什么是kickstart?_第4张图片

Kickstart工作流程图 

什么是kickstart?_第5张图片

 kickstart应用场景

公司规模扩大, 购进了50台服务器,并且要求运维工程师在一天之内将其linux系统安装完成。这时候只能采用这种自动化的网络安装。

你可能感兴趣的:(linux)