远程批量自动安装中标麒麟操作系统的方法


服饰细心
服饰细心 2022-09-29 09:28:04 51631
分类专栏: 资讯

1 安装方法及过程

中标麒麟作为Linux家族的一员,仍保留了许多Linux的特性,能够支持WOL (Wake on LAN,网络唤醒)、PXE (Preboot eXecute Environment,预启动执行环境)、KickStart技术。通过WOL技术可以实现待安装计算机的远程唤醒,通过PXE技术可以实现麒麟内核的远程引导以及安装程序的自动启动,而通过KickStart技术则可实现安装过程的自动交互。具体实现上,可以基于以上三项技术在局域网上搭建一台系统安装服务器,以实现局域网上客户机的自动安装。
图 1是系统安装服务器与待安装客户机的网络连接关系图,其中服务器提供WOL、DHCP、TFTP和FTP四项服务,用以支撑WOL、PXE和KickStart这三项关键技术的实现。其中FTP服务提供自动应答文件以及操作系统安装文件的下载。
图 1 系统安装服务器与待安装计算机网络连接关系图
图 1 系统安装服务器与待安装计算机网络连接关系图
图 2 自动安装过程
图 2 自动安装过程

图 2是自动安装过程的流程图,系统安装服务器与待安装客户机按照预设的流程自动进行交互,从而实现自动安装。安装过程主要包括以下步骤:

  1. 远程唤醒待安装客户机。系统安装服务器通过ether-wake命令发送“魔术包”唤醒待安装客户机。
  2. 待安装客户机自动启动操作系统安装程序。待安装客户机被远程唤醒后,将以PXE模式引导操作系统。首先,客户机向服务器申请分配IP地址,服务器收到请求后,通过DHCP服务向客户机分配IP地址,并同时提供TFTP服务器的地址,也就是安装服务器自身的IP地址。接下来,客户机利用服务器提供的TFTP服务下载启动麒麟操作系统内核所需的文件,主要包括引导文件pxelinux.0、内核映像文件vmlinuz、驱动文件initrd.img、启动配置文件default等。其中配置文件default指定内核启动后运行系统安装程序,并指定安装过程采用KickStart技术实现自动应答,以及自动应答文件ks.cfg的FTP地址。文件下载完成后,客户机启动麒麟内核并根据配置文件启动系统安装程序。
  3. 待安装客户机实现安装过程的自动交互,并完成自动安装。首先,客户机利用服务器的FTP服务下载自动应答文件,在自动应答文件中,指定操作系统安装文件的FTP地址,以及安装过程的交互内容。接下来,客户机再次利用服务器的FTP服务下载操作系统安装文件,并根据自动应答文件中的交互设置自动完成安装。

2 系统安装服务器搭建

这里以麒麟3.2.2(内核版本2.6.32)的安装为例,阐述系统安装服务器的搭建方法。其中服务器同样运行麒麟3.2.2,其IP地址为2.10.8.99,网关为2.10.8.254,局域网网段为2.10.8.0/24。由于麒麟操作系统自带ether-wake工具,因此服务器默认具有WOL服务,无需另外搭建。下文主要介绍DHCP服务器、TFTP服务器、FTP服务器的搭建方法。在搭建服务器时,需要将麒麟安装光盘插入服务器光驱以准备安装相应的软件包。

2.1 DHCP服务器搭建

搭建DHCP服务器需要安装dhcp软件包,在root用户下运行以下命令即可完成安装:
rpm dhcp
软件包安装完成后需要编辑修改配置文件,其路径为/etc/dhcp/dhcpd.conf,下面是配置文件的内容:

option space PXE;
option PXE.mtftp-ip code 1 = ip-address;
option PXE.mtftp-port code 2 = unsigned integer 16;
option PXE.mtftp-sport code 3 = unsigned integer 16;
option PXE.mtftp-tmout code 4 = unsigned integer 8;
option PXE.mtftp-delay code 5 = unsigned integer 8;
option PXE.discovery-control code 6 = unsigned integer 8;
option PXE.discovery-mcast-addr code 7 = ip-address;
class "pxeclients" {
match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
option vendor-class-identifier "PXEClient";
vendor-option-space PXE;
option PXE.mtftp-ip 0.0.0.0;
filename "pxelinux.0";
next-server 2.10.8.99;
}
ddns-update-style interim;
ignore client-updates;
default-lease-time 1200;
max-lease-time 9200;
option subnet-mask 255.255.255.0;
option broadcast-address 2.10.8.255;
option routers 2.10.8.254;
option domain-name-servers 2.10.8.254;
subnet 2.10.8.0 netmask 255.255.255.0 {
range 2.10.8.10    2.10.8.100;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

其中,第15行指定了TFTP服务器地址,这里即系统安装服务器地址;第21-26行指定了动态IP网段的设置。特别地,第26行指定了动态IP的范围,此范围必须包含DHCP服务器本身的IP地址。
最后,需要在root用户下运行以下命令重启dhcp服务:
service dhcpd restart

2.2 TFTP服务器搭建

搭建TFTP服务器需要安装tftp、tftp-server、xinetd三个软件包,在root用户下运行以下命令完成软件包安装:
rpm tftp tftp-server xinetd
软件包安装完成后,编辑配置文件/etc/xinetd.d/tftp配置TFTP服务,下面是配置文件内容:

service tftp
{
disable = no
socket_type = dgram
protocol = udp
wait = yes
use = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot -c
per_source = 11
cps = 100 2
flags = IPv4
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

其中第9行中的字符串“/tftpboot”为TFTP服务器存放文件的目录。配置完成后,将引导启动麒麟所需要的文件复制到目录/tftpboot中,具体的复制方法如下表所示。

文件(夹)源路径文件(夹)目的路径
/usr/share/syslinux/pxelinux.0/tftpboot/pxelinux.0
$(NeoKylin安装光盘)/boot//tftpboot/boot
$(NeoKylin安装光盘)/isolinux//tftpboot/pxelinux.cfg/
/tftpboot/pxelinux.cfg/isolinux.cfg/tftpboot/pxelinux.cfg/default

复制完成后,编辑修改麒麟启动配置文件/tftpboot/pxelinux.cfg/default,下面是启动配置文件内容:

default /pxelinux.cfg/vesamenu.c32
timeout 60
display /pxelinux.cfg/boot.msg
menu background splash.jpg
menu title Welcome to NeoKylin 3.2.2
menu color border 0 ffffffff 00000000
menu color sel 7 ffffffff ff000000
menu color title 0 ffffffff 00000000
menu color tabmsg 0 ffffffff 00000000
menu color unsel 0 ffffffff 00000000
menu color hotsel 0 ff000000 ffffffff
menu color hotkey 7 ffffffff ff000000
menu color scrollbar 0 ffffffff 00000000
label linux
menu label ^Install System Standard
menu default
kernel /boot/vmlinuz
append initrd=/boot/initrd.img ksdevice=link ks=ftp:// 2.10.8.99/NeoKylin-3.2.2/kickstart/ks.cfg
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

其中第18行中的“ksdevice=link”指定了安装过程采用KickStart技术自动交互,“ks=ftp://2.10.8.99/NeoKylin-3.2.2/kickstart/ ks.cfg”指定了自动应答文件ks.cfg的FTP地址。
默认情况下,麒麟的SELinux工作在Enforcing模式,这阻止了TFTP服务的正常访问,需将其关闭或者设置为Permissive模式。然而麒麟3.2.2出于安全的考虑,不允许用户关闭SELinux,而且Permissive模式处于隐藏状态,无法直接设置。在root用户下运行以下命令可将SELinux设置为Permissive模式:
setenforce softmode
通过运行以下命令查看SELinux状态,确保返回结果为Permissive:
getenforce
最后,需要在root用户下运行以下命令重启tftp服务:
service xinetd restart

2.3 FTP服务器搭建

搭建FTP服务器需要安装ftp、vsftpd两个软件包,在root用户下运行以下命令安装软件包
rpm tfp vsftpd
安装完成后编辑配置文件/etc/vsftpd/vsftpd.conf,确保属性anonymous_enable=YES,其他保持默认值即可。配置完成后将麒麟安装光盘复制到服务器的目录/var/ftp/NeoKylin-3.2.2/中。文件复制完成后,编辑自动应答文件,其路径为/var/ftp/NeoKylin-3.2.2/kickstart/ks.cfg。该文件可以用麒麟自带的软件包KickStart进行编辑,也可以在原有的模板上直接以文本方式进行编辑。下面是一个自动应答文件示例:

install
url --url="ftp://2.10.8.99/NeoKylin-3.2.2"
lang zh_CN.UTF-8
keyboard us
rootpw --plaintext 123456
network  --bootproto=dhcp --device=eth0 --onboot=yes
firewall --disabled
auth  --useshadow  --passalgo=sha512
selinux --permissive
timezone  Asia/Beijing
graphical
firstboot --disable
logging --level=info
selinuxpolicy targeted
bootloader --append="rhgb quiet" --location=mbr –driveorder = "sda"
zerombr
clearpart --linux --initlabel 
part swap --fstype="swap" --size=8092
part / --fstype="ext4" --grow --size=1

%packages
@base
@console-internet
@core
@debugging
@directory-client
@hardware-monitoring
@java-platform
@large-systems
@network-file-system-client
@performance
@perl-runtime
@server-platform
@fonts
@print-client
@basic-desktop
@desktop-debugging
@desktop-platform
@general-desktop
@graphical-admin-tools
@input-methods
@legacy-x
@x11
@internet-browser
@remote-desktop-clients
@server-applications
@legacy-unix
%end

%post
useradd new-user; echo 123456|passwd --stdin new-user
xset s off
xset dpms 0 0 0 
%end
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54

其中第2行中用url关键字指定了安装文件的位置;第5行用rootpw关键字指定了root用户的密码;在第20-47行的packages段指定了需要安装的软件包;在第48-52行的post段指定了安装结束后运行的脚本,其中第49行新建了一个用户new-user并指定其密码为123456。更多KickStart设置,请参见相关技术文档。
同样的,最后需要在root用户下运行以下命令重启ftp服务:
service vsftpd restart

3 相关技术原理

3.1 WOL技术

WOL是一种计算机电源管理技术,它允许处于关机状态的计算机在网卡收到魔术包(Magic Packet)后被唤醒。魔术包是由AMD公司发明的一种特殊数据包格式,里面包含了待唤醒计算机网卡MAC地址等信息。WOL首先需要计算机硬件的支持,它要求计算机关机后,网卡仍处于加电待机状态,当网卡侦听到与自身MAC地址相符的魔术包后,能向主板发送开机信号。目前市场主流的计算机在硬件上均支持这项功能。此外,WOL还需要一个能发送魔术包的软件,麒麟自带的ether-wake工具包便具有该项功能。ether-wake命令需在root用户下执行,其常用的调用格式为:
ether-wake MAC地址
利用WOL技术,可以省去人工逐台开机这一繁琐操作,但需事先收集待安装计算的MAC地址。远程唤醒待安装计算机是实现远程全自动安装麒麟的第一步。

3.2 PXE技术

PXE是由Intel公司发明的一项技术,它工作在C/S模式,允许客户机通过网络从远程服务器下载操作系统映像并引导启动。在这个过程中,需要用DHCP协议为客户机分配IP地址以建立通信链路,还需用TFTP协议下载启动所需文件。TFTP可认为是一种简化了的FTP协议,不支持目录列表和用户认证,适合客户机在启动一个完整的操作系统前进行文件的下载。PXE可以引导启动多种操作系统,如Windows、Linux等。
研究表明,PXE同样能够引导中标麒麟操作系统,利用syslinux工具包中提供的引导文件pxelinux.0即可实现麒麟内核映像的PXE引导。麒麟内核被远程引导启动后,就可以根据启动配置文件启动安装程序。
值得注意的是,客户机通过WOL技术被远程唤醒后,需确保能自动进入PXE引导模式。客户机的引导模式在BIOS中进行设置。默认情况下,当客户机通过网卡唤醒后,BIOS已被设置为PXE模式引导。

3.3 KickStart技术

KickStart是由Red Hat公司发明的一种自动安装Red Hat Linux的技术。利用该技术,安装过程中的人机交互可以根据预先准备好的自动应答文件(通常名为ks.cfg)自动完成。在自动应答文件中,可以指定操作系统安装文件所在的位置、客户机磁盘分区、root用户密码等基本设置,还可以指定需要安装的软件包,以及安装完成后需要执行的脚本等。自动应答文件是一种纯文本的配置文件,可以直接编辑修改,也可以通过图形化的KickStart工具软件进行修改。

文章知识点与官方知识档案匹配,可进一步学习相关知识
CS入门技能树Linux入门初识Linux17938 人正在系统学习中

网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。

本文链接:https://www.xckfsq.com/news/show.html?id=10677
赞同 0
评论 0 条
服饰细心L0
粉丝 0 发表 7 + 关注 私信
上周热门
如何使用 StarRocks 管理和优化数据湖中的数据?  2950
【软件正版化】软件正版化工作要点  2872
统信UOS试玩黑神话:悟空  2833
信刻光盘安全隔离与信息交换系统  2728
镜舟科技与中启乘数科技达成战略合作,共筑数据服务新生态  1261
grub引导程序无法找到指定设备和分区  1226
华为全联接大会2024丨软通动力分论坛精彩议程抢先看!  165
2024海洋能源产业融合发展论坛暨博览会同期活动-海洋能源与数字化智能化论坛成功举办  163
点击报名 | 京东2025校招进校行程预告  163
华为纯血鸿蒙正式版9月底见!但Mate 70的内情还得接着挖...  159
本周热议
我的信创开放社区兼职赚钱历程 40
今天你签到了吗? 27
如何玩转信创开放社区—从小白进阶到专家 15
信创开放社区邀请他人注册的具体步骤如下 15
方德桌面操作系统 14
用抖音玩法闯信创开放社区——用平台宣传企业产品服务 13
我有15积分有什么用? 13
如何让你先人一步获得悬赏问题信息?(创作者必看) 12
2024中国信创产业发展大会暨中国信息科技创新与应用博览会 9
中央国家机关政府采购中心:应当将CPU、操作系统符合安全可靠测评要求纳入采购需求 8

加入交流群

请使用微信扫一扫!