扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
Redhat或Fedora下实现网络无人值守安装(Kickstart)
需求分析:公司业务扩展,需要新建立一个办公局域网,新机已经购置且配置不一(网卡支持网络启动功能)。为了追求稳定性,领导决定全部采用Redhat操作系统。如果采用常规的安装方法即耗时又繁琐,稍有不慎,还容易系统配置出现差异。也不利于以后的管理。
引用概念:为了满足这种需求,Red Hat 发展出kickstart 的安装方式。配合服务器的lftp、DHCP服务它可以实现客户机的无人值守的自动网络安装。这部分我们实战Kickstart 的实现。
网络结构
局域网的IP网段为192.168.1.0
共享服务器A,IP为192.168.1.254
简单配置情况:
配置一个yum源,并可以通过ftp://192.168.1.254/pub/redhat访问;
安装并配置Kickstart程序。
安装服务器B,IP为192.168.1.253
简单配置情况:
配置DHCP服务,为局域网中的裸机提供IP地址,并说明启动所需的文件;
配置tftp服务,允许客户机下载启动映象文件。
操作步骤:
一、在A机配置FTP服务和yum源
安装FTP服务
[root@localhost Server]# rpm -ivh vsftpd-2.0.5-10.el5.i386.rpm
启动服务
[root@localhost Server]# service vsftpd start
为 vsftpd 启动 vsftpd: [确定]
配置yum源
通过光盘或其它途径安装yum和createpreo软件
[root@localhost Server]# rpm -ivh yum-utils-1.0.4-3.el5.noarch.rpm rpm
[root@localhost Server]# rpm -ivh createrepo-0.4.4-2.fc6.noarch.rpm
将安装光盘中的内容完整复制到ftp公共目录下,并修改yum的配置文件,方便起见我们用脚本实现yum数据库的更新
#!/bin/bash
cd /var/ftp/pub/redhat
rm -rf Server/.olddata/
rm -rf VT/.olddata/
rm -rf Cluster/.olddata/
rm -rf ClusterStorage/.olddata/
for i in `find | grep “xml$” | grep “comps”`;do createrepo -g ${i#./*/} ${i%/*/*.xml}; done
exit 0
二、在B机上配置tftp服务
[root@localhost Server]# rpm -ivh tftp-server-0.42-3.1.i386.rpm
确保服务是启用状态
[root@localhost Server]# chkconfig –list |grep tftp
tftp: 关闭
[root@localhost Server]# chkconfig tftp on
[root@localhost Server]# chkconfig –list |grep tftp
tftp: 启用
重新加载管理tftp服务的xinetd守护进程
[root@localhost Server]# service xinetd restart
停止 xinetd: [确定]
启动 xinetd: [确定]
三、在B机上配置PEXlinux
拷贝支持PEX启动方式的bootloader到/tftpboot目录下
[root@localhost tftpboot]# cp -p /usr/lib/syslinux/pxelinux.0 /tftpboot
拷贝微型内核到/tftpboot下
[root@localhost redhat]# cp /var/ftp/pub/redhat/isolinux/* /tftpboot/
在tftpboot目录下建立一个目录单独存启动syslinux配置文件
[root@localhost tftpboot]# mkdir pxelinux.cfg
修改模板isolinux.cfg的配置文件,并使它生效
[root@localhost tftpboot]# cp isolinux.cfg default.cfg
如果需要自定义启动微型内核时输入的文本和响应的操作请编辑default.cfg。
default linux
prompt 1
timeout 600
display boot.msg
F1 boot.msg
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg
label linux
kernel vmlinuz
append 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 memtest86
kernel memtest
append -
四、在B机上配置DHCP服务
重点是在常规配置好的DHCP配置文件中增加两行next-server 192.168.1.253; #TFTPServer的IP
filename “pxelinux.0″;#pxelinux loader文件位置
五、最核心的步骤:创建kickstart脚本
由于创建Kickstart配置脚本要用到本机的Yum源,我们为了方便起见,在安装有yum源的服务机A上配置。
安装kickstart配置程序
[root@localhost Server]# rpm -ivh system-config-kickstart-2.6.19.1-1.el5.noarch.rpm
安装简易操作工具
[root@localhost Server]# rpm -ivh pykickstart-0.43-1.el5.noarch.rpm
现在我们可以在图形下创建ks脚本了。
最后要做的是把ks.cfg脚本放置到可以任意的可以匿名访问的服务器上,我把它放到A机上的FTP目录下,/var/ftp/pub下。
五、测试
现在就可以进行测试了,当然如果你愿意的话还可以在ks.cfg脚本中增加安装完成后的执行的shell命令。详情请查看下一页附录一。
在BIOS或手动设置客户机从LAN启动,客户机会从tftp服务器上加载启动的微型内核,默认在default.cfg未做修改情况下,我们可以通过在开始的boot:提示处输入boot: linux ks=ftp://192.168.1.254/pub/ks.cfg来要求电脑执行Kickstart安装。
我们在这里要说明一点对于ks.cfg配置文件的位置,可以有多种形式获取,FTP,HTTP,NFS,都是有效的。如下:
boot: linux ks=http:server:/path
如果你愿意的话,我们也可以修改default.cfg文件,直接把ks.cfg的地址添加到其中,例如:
label ks
kernel vmlinuz
append ks initrd=initrd.img
这几行我们可以改写成
label ks
kernel vmlinuz
append ks initrd=initrd.img ks=tfp://192.168.254/ks.cfg
这样我们输入linux ks就自动从tfp://192.168.254/ks.cfg下载配置文件;
甚至于我们可以设备默认不输入内容时操作:
接下来就喝杯茶休息一下吧。
ks.cfg 文件由三个部份皆组成:
command 区段—此部份包含了必要安装选项
packages 区段—列出欲安装套件
%pre and %post 区段
command 区段
■lang(必要):安装时所使用的语言
例如:安装过程中选用中文语言,lang zh_TW.Big5
■langsupport (必要):指定系统使用的语言。假如你安装一至多国语系,你必需使用默认选项去指定默认语言。语法为:
例如:langsupport –default en_US.UTF-8 zh_TW.Big5 en_US.UTF-8
■键盘(必要):设置系统键盘的种类。语法为:keyboard us
■鼠标(必要):设置鼠标。语法为:
mouse- -device=ttvS0(鼠标识别装置位置)- - emulthree(仿真三个按键)generics/2(定义鼠标种类)
■timezone(必要) 设置系统时区。
timezone Asia/Taipei (指定你的时区位置)
■设置系统键盘的种类。语法为:keyboard us
■鼠标(必要):设置鼠标。语法为:
mouse- -device=ttvS0(鼠标识别装置位置)- - emulthree(仿真三个按键)generics/2(定义鼠标种类)
■xconfig(非必要):在安装过程中手动设置X,假如你不想安装X,你不应该使用此选项。命令的格式为:
■xconfig- - card(显示卡类别)- - videoram(指定显示卡记忆容量)- - hsync(指定屏幕水平扫描频率)- -
vsync(指定屏幕垂直扫描频率)- - resolution(指定屏幕分辨率) - - depth(指定X 窗口系统彩度)- -
startxonboot (假如你想在系统开机时激活X 时使用)- - defaultdesktop gnome(或kde)(指定默认桌面)。
■install (非必要):告知系统安装一个新的安装。这是默认模式,因此一个新的安装不需再选用这个命令。接着您必需指定安装方式,可以是cdrom、harddrive、nfs 或url。
■cdrom
■harddrive—partition=your partition –dir=/your directory path
– partition = 来源分区
– dir = Red Hat 子目录
(请确定你所键入来源分区和子目录信息的正确性)。
■nfs – server—your server –dir=/your directory path
– server = 指定安装来源服务器
– dir = Red Hat 子目录
(请确定你所键入来源分区和子目录信息的正确性)。
■url – url http://your server/dir
使用HTTP 进行安装
■url – url ftp://your username:password@your server/dir
使用FTP 进行安装
■rootpw (必要) 设置一组系统root 密码。
rootpw - - iscrypted (表示密码已被加密) password
■firewall(非必要) 提供安全性等级来保护系统。
■authconfig (必要) 设置系统认证选项。命令格式:
- -enablemd5 (使用md5 编码使用者密码)
- -enableshadow (使用shadow 密码)
■bootloader (必要) 指定开机管理程序的位置和传递任何kernel 选项。默认开机管理程序为GRUB,但是你也能选择LILO 开机管理程序来取代GRUB。命令格式为:
- - location=mbr (指定开机管理程序的位置)
- -append=(指定要传递的核心参数)。
- -useLilo (使用LILO 为开机管理程序)。
■clearpart (非必要)告知系统移除系统上的分区。你可以使用clearpart 移除Linux 分区以及移除所有的分区,或者你也能指定你想要移除分区的磁碟机。命令格式为:
– linux (移除所有Linux 分区)
- - all (移除系统上所有的分区)
– drives = (指定要移除分区的磁盘驱动器)
■Part (必要) 安装时是必要的,升级时请忽略。使用这个命令你能为系统建立分区。
package 区段安装一个新的系统,你必需选择你想安装的套件。选择欲安装的套件是使用%packages 命令。套件可分为单一套件或者是套件组。你能在第一片Red Hat安装光盘下的/base/comps.xml 寻找群组套件清单。通常,只需列出套件组不需要列出单一套件。注意!默认之下core 和base 群组是被选取的,所以也不需要在 %packages 这个区段下去指定它们。
如同利用ksconfig 所产生出来的ks.cfg %packages 区段中套件组是一行指定一个,以@节号开头,后面加上一格空白接下来是完整群组名称就如同comps.xml 文件所指定。如果个别单一套件并列出该单一套件名,不加上额外的字符。
套件组是一行指定一个,以@节号开头,后面加上一格空白接下来是完整群组名称就如同comps.xml 文件所指定。如果是个别单一套件则列出该单一套件名,前面不需加上额外的字符。
%package 有三个选项可以设置:
◆- -resolvedeps
决解自动相依性问题及安装套件。建意选项,在安装中由于没使用自动决解相依性,若有相依性问题可能会造成中止安装并且做提示响应。
◆- -ignoredeps
你选择安装套某套件但乎略它的相依性,可能造成此套件无法运作,尤其是此套件需要其它相依的套件。
◆—ignoremissing
标示忽视安装遗失套件及群组并且也不做提示响应。
%pre and %post 区段%pre 区段内可填入在开始安装操作系统需要先执行的工作。%post 命令传递到系统上执行必须在Kickstart 安装完成后。能有效的执行命令去安装其它的软件或者设置系统信息。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者