目录
什么是kickstart批量安装
什么是Cobbler?
Kickstart中的各模块
Kickstart如何配置
kickstart如何使用?
Kickstart工作流程图
kickstart应用场景
Kickstart是一种无人值守的安装方式之一(还有一种叫做Cobbler)。他的工作原理就是在安装过程中记录人工干预填写的各种参数,并生成一个名为ks.cfg的文件。如果在自动安装过程中出现要填写参数的情况,安装程序就会首先去查找ks.cfg文件,如果找到合适的参数,就采用所找的参数;如果没有找到,便弹出对话框让安装着手动书写。所以,ks.cfg文件涵盖了所有安装过程中需要填写的参数。那么安装者现在只需要告诉安装程序从何处下载ks,cfg文件,剩下的交给kickstart就可以完成安装操作系统这个事情。等安装完毕之后,安装程序根据ks.cfg中设置的重启/关闭系统,并结束安装。
Cobbler集中和简化了通过网络安装操作系统需要使用道德DHCP,TFTP和DFS服务的配置。简单说:Cobbler是对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客户发来的文件传输请求之后,穿件一个“数据传输进程”和“数据连接”,用来连接客户端和服务器端的数据传送进程。数据传输进程用于完成文件的传送。在传送完毕后关闭“数据连接”并结束进程的运行。当控制其原理图如下:
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等操作系统。
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内核模块及相关参数。
第一步:
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根目录下载
}
6.重启所有的服务
/etc/init.d/nfs restart #重启 nfs
/etc/init.d/xined restart #重启tftp
/etc/init.d/dhcpd restart #重启dhcp
首先要使用安装系统的主机要和配置好kickstart的主机在同一局域网内.
当主机打开的时候,使用相对应的F*键(不同品牌的机器快捷键不同)进入boot引导开机系统的选择界面,然后选择网络控制器进行安装即可。如下:
公司规模扩大, 购进了50台服务器,并且要求运维工程师在一天之内将其linux系统安装完成。这时候只能采用这种自动化的网络安装。