linux 无人值守的安装.docx
《linux 无人值守的安装.docx》由会员分享,可在线阅读,更多相关《linux 无人值守的安装.docx(9页珍藏版)》请在冰点文库上搜索。
![linux 无人值守的安装.docx](https://file1.bingdoc.com/fileroot1/2023-5/6/6055f870-3463-4a43-8ca0-d2e6e03edba1/6055f870-3463-4a43-8ca0-d2e6e03edba11.gif)
linux无人值守的安装
级RHEL5之KICKSTART批量网络无人职守安装{详解篇}一
花了一段时间研究linux下的网络批量无人值守安装linux操作系统。
也就是传说中kickstart服务。
现在我把自己的心得和大家分享下,无人值守安装这个词语队大家来说并不陌生,但是估计大家有一定的误解,所谓的GHOS克隆,基于物理层的网络克隆,这些都不算无人职守安装,顶多算无人职守拷贝。
如果大家还要问我什么是kickstart或者为什么要使kickstart
的话,我建议你去google,因为我不想用大量的篇幅来写这些文字介绍。
进入正题
所有系统的网络安装和无人职守安装都是基于PXE的,当然linux下的无人职守安装也是基于PXE(PrebootExecutionEnvironment,远程引导技术)技术。
同于依耐大量linux服务,最主要的服务包括,kickstart(通过预先设置的脚本,按要求安装系统),dhcpd(很重要,负责pxe启动,还有定义tftp服务器地址kickstart文件位置),nfs、yum、vsftp(为安装提供安装介质),tftp(pxe启动文件传输的通道),dns(如果需要给新安装的机器设置主机名就需要)。
由于PXE技术比较深奥,所以我们今
天不做探讨,只做应用。
下面我介绍下kickstart的工作架构。
首先,完成这个服务需要3个角色
1、启动服务器:
给clinet提供启动的相关参数和连接安装服务器使用的IP地址。
2、安装服务器:
提供安装所需的配置文件和安装文件。
3、客户端:
需要无人职守安装的机器(网卡要支持PXE,也就是可以从网卡启动,现在的电脑基本都支
持,只要你的爱机不是古董)
下面是工作流程
本来想画个示意图给大家看的,由于美工太差,画出来我自己都看不懂了。
所以我就讲述下吧
1、pxe启动,就去广告寻找dhcp服务器获取ip地址hebootstrap文件,成功以后进入第二步(DHCP提供IP地址,还有bootstrap配置文件的位置)
2、client通过tftp连接到服务器,下载bootstrap文件。
(linux里的bootstrap文件就是pxelinux.0,
系统内有,大家可以使用#locatepxelinux.0查找它存放的位置)
3、client下载成功pxelinux.0文件后,系统还会下载控制pxelinux.0的配置文件,叫default。
然后
client就会按照default的配置
来执行pxelinux.0文件。
4、现在client端会在获取一次IP地址。
并且根据DHCP服务器配置文件找到kickstart配置文件并下载。
也是使用的tftp协议。
5、pxelinux.0文件定义的想服务器请求linux内核,根文件系统之类的参数。
运行这个文件,client就会向服务器请求相关的文件并
下载,都里使用的都是tftp协议。
6、文件下载文成后,client就会启动linux内核,这就进入了我们安装时候看见的第一个图形界面,这
个界面和自己安装看见的第一个画面一样,回车就是图形安装,输入text就是文本安装那里。
如果使用
了kickstart,这个界面消失很快,可能看不见。
到这里PXE启动就完成了。
7、下面就该主角kickstart出场了。
其实kickstart在第四步已经出现了,当按照default要求运行
pxelinux.0文件,系统读取内核,挂在根文件系统以后,的任务就都交给了kickstart了。
包括安装介质
来源、语言、时区、分区、安装哪些包等,都是在kickstart文件中定义。
只要进入这一步,kickstart配置文件正确,我们的无人值守安装已经成功了。
原理介绍就算完成,下面我们来实战,使用kickstart服务安装系统
一、环境搭建
1、一台server担任启动服务器和安装服务器
2、一台client,需要能从网卡启动
3、两台机器在同一局域网
4、服务器要有安装所需的所有包
5、我们用192.168.0.0/24网段来试验,我的服务器IP是:
192.168.0.2/24
6、服务器系统RHEL5.1,client系统RHEL5.1
二、具体实施,server端配置
1、安装自己的yum服务器(必须要做)。
不会的请参考我的blog:
yum服务器架设。
2、使用自己的yum服务器安装dhcp服务
#yuminstall"dhcp*"
安装成功以后就修改配置文件DHCP的配置文件如下,我给大家解释下重点
=======================================
#配置文件内代表注释
#定义所支持的DNS动态更新类型(必选)
ddns-update-stylenone;
#定义作用域(或IP子网)
subnet192.168.0.0netmask255.255.255.0{
########################################
#在用#表示的条线之间的意思是:
定义一些值,,指定何时使用他们。
#例如,假定要管理两种客户端类,使用选项空间定义在前面的例子中,现在能够依据不同的virtual值
向客户端发送不同的选项值,
#如下:
当client端的mac前三个满足00:
16:
3e那么,client就会获取到
192.168.0.61-192.168.0.80,否则就会获取192.168.0.1#-192.168.0.20
class"virtual"{
matchifsubstring(hardware,1,3)=00:
16:
3e;
}
optionrouters192.168.0.2; #router的ip地址
optionsubnet-mask255.255.255.0; #subnet-mask地址
optiondomain-name""; #域名根据你自己的情况定
optiondomain-name-servers192.168.0.2; #域名服务器也就是DNS服务器地址
default-lease-time21600;
max-lease-time43200;
#AssignIPs61-80toXendomUs
pool{
allowmembersof"virtual";
range192.168.0.61192.168.0.80;
}
#AssignIPs1-20forclassroomsystemsunless
#staticIPsareassignedbelow
pool{
denymembersof"virtual";
range 192.168.0.1192.168.0.20;
}
#################################################################
filename"/kickstart/ks.cfg"; #指定kickstart配置文件的位置
next-server192.168.0.2; #指定下以个服务器,也就是tftp服务器。
# host定义某个mac得到某个IP,一般没有启用
#
# hoststation1{
# hardwareethernet00:
a0:
cc:
3c:
80:
c5;
# fixed-address192.168.0.1;
# }
# hoststation2{
# hardwareethernet00:
A0:
CC:
39:
AF:
B0;
# fixed-address192.168.0.2;
# }
}
#下面就是PXE的参数了,很重要
optionspacePXE;
class"PXE"{
matchifsubstring(optionvendor-class-identifier,0,9)="PXEClient";
optionvendor-encapsulated-options01:
04:
00:
00:
00:
00:
ff;
optionboot-size0x1;
filename"pxelinux.0";
optiontftp-server-name"192.168.0.2";#这个IP地址一定要修改成你的
TFTP的IP地址
optionvendor-class-identifier"PXEClient";
vendor-option-spacePXE;
}
#我会给出以份DHCP配置文件,你只要修改我红色标记出来的地方符合你自己的环境。
==================================
3、安装tftp服务
#yuminstall"tftp*"
安装后会生成/tftpboot这个目录现在我们往这个目录加入启动需要的一些文件
拷贝pxeboot目录下的所有文件到tftpboot目录主要有这四个文件:
initrd.img,README,TRANS.TBL,vmlinuz。
#cp /var/ftp/pub/images/pxeboot/* /tftpboot/
删除TRANS.TBL,这个文件没用
#rm-f/tftpboot/TRANS.TBL
查找pxelinux.0这个文件拷贝到tftpboot目录
#updatedb
#locatepxelinux.0
#cp /usr/lib/syslinux/pxelinux.0 ./
在tftpboot目录内创建pxelinux.cfg目录。
然后把default文件放进去
#mkdirpxelinux.cfg
default文件的内容
defaultlinux
labellinux
kernelvmlinuz
appendksdevice=eth0load_ramdisk=1initrd=initrd.imgnetworkksnoipv6
不建议你修改此文件,这样TFTP,的相关设置就完成了
4、制造kickstart文件,我知道有三种方法
方法1、每当你安装好一台RedHatLinux机器,RedHatLinux安装程序都会创建一个
kickstart配置文件,记录你的真实安装配置。
如果你希望实现和某系统类似的安装,可以基于该系统
的kickstart配置文件来生成你自己的kickstart配置文件。
(生成的文件名字叫anaconda-ks.cfg放在
root的家目录里)
方法2、RedHatLinux提供了一个图形化的kickstart配置工具。
在任何一个安装好的RedHat
Linux系统上运行该工具,就可以很容易地创建你自己的kickstart配置文件。
kickstart配置工具命令为
redhat-config-kickstart(RHEL3)或system-config-kickstart(RHEL4,RHEL5)
方法3、阅读kickstart配置文件的手册。
用任何一个文本编辑器都可以创建你自己的kickstart配置
文件。
现在我们使用方法2来创建以个kickstart文件
#yuminstall"*kickstart*" 安装工具,如果已经安装就不用了
#system-config-kickstart
进入就是一个图形界面,大家按照自己的要求在程序里面选择,注意分区那页。
你最好先把所有分
区删除,然后自己规划分区,规划的分区要比硬盘小哦。
还有installationMethod要选择nfs,在下面
填写NFSServer和NFSDirectory。
还有防火墙一定要先关闭。
最后就是选择安装包的时候一般都不能选择是灰色的。
剩下的就需要我们自己DIY了。
完成选择后,就选择左上角的File图标,然后点击savefile。
这样你的配置文件就会保存到当前目录。
然后我们对这个文件DIY,DIY两个地方,一、由于KICKSTART工具没有提到序列号的问题,所以我们要定义下。
在配置文件开始加入key--skip这个参数,独占一行。
二、添加需要安装的包,这个时候我们就要用到刚才说的/root/anaconda-ks.cfg文件了。
打开这个文件,复制%packages行到
libsane-hpaio行之间的包到我们自己的kickstart文件的最后,复制的内容包括%packages和libsane-hpaio这两行。
然后创建/kickstart目录,把这我们的kickstart文件放进去
#mkdir /kickstart
#cp ks.cfg /kickstart/
我会把我的system-config-kickstart放在一目录内上传给大家。
5、用NFS共享kickstart文件和安装介质
#vim /etc/export
加入这样两行
/kickstart 192.168.0.0/24(ro)
/var/ftp/pub/ 192.168.0.0/24(ro)
6安装DNS服务器,为了让新安装的服务器可以有你期望的主机名。
最好在正向解析里面使用$GENERATE变量,可以批量做解析,减少工作量。
不会的请具体参见我的BLOG
7、从新启动服务器
#chkconfigdhcpd.
#servicedhcpdrestart
#chkconfigtftp .
#servicexinetdrestart
#chkconfignamed.
#servicenamedrestart
#serviceportmaprestart
#servicenfs restart
#servicenetworkrestart
都完成以后,您的kickstart服务器就可以使用了。
clinet配置就简单了,只需要在bios里面把启动方式设置成网卡。
这样就OK。
当然也已用虚拟机来代替
。
然后您就可以端把椅子坐到一边去喝茶,过20分钟基本就安装好,如果同时安装的量大,速度会变慢
,应为服务器的硬盘转速只有那么快,这是批量安装的瓶颈。
ok,你赶快试试你的kickstart服务器吧。
kickstart服务器故障排除
1、关闭防火墙,系统自带的和IPTABLES都要关闭
2、从网卡启动,获取不到IP地址检查你的DHCP服务器是否开机,使用#netstat -tulnp|grepdhcpd,来查看是否在监听67号端口
。
3、获取IP后,在TFTP那步卡住了。
检查你的DHCP配置文件,next-server是不是指的正确的tftp服务器。
TFTP服务器是否开启,是否运
行正常。
可以在linux里面使用这个方法来测试
#tftp您的服务器IP 登陆进入后
tftp>getpxelinux.0
tftp>quit
查看当前目录是否有pxelinux.0这个文件,有的话,证明你的tftp服务器是正常的最后检查你的网络中是不是还有其他dhcp服务器
3、内核成功加载后,系统有完成自动安装,需要人工介入,那就证明你的kickstart脚本文件出问题了,需要重新生成以个,或者使用我给的,在里面修改下NFS的服务器的地址就可以用了。
4、监控服务器的/var/log/message文件,寻找故障原因。