本文共 7175 字,大约阅读时间需要 23 分钟。
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 系统安装服务器与待安装计算机网络连接关系图
图 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,下面是配置文件的内容:
1 option space PXE;
2 option PXE.mtftp-ip code 1 = ip-address;
3 option PXE.mtftp-port code 2 = unsigned integer 16;
4 option PXE.mtftp-sport code 3 = unsigned integer 16;
5 option PXE.mtftp-tmout code 4 = unsigned integer 8;
6 option PXE.mtftp-delay code 5 = unsigned integer 8;
7 option PXE.discovery-control code 6 = unsigned integer 8;
8 option PXE.discovery-mcast-addr code 7 = ip-address;
9 class "pxeclients" {
10 match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
11 option vendor-class-identifier "PXEClient";
12 vendor-option-space PXE;
13 option PXE.mtftp-ip 0.0.0.0;
14 filename "pxelinux.0";
15 next-server 2.10.8.99;
16 }
17 ddns-update-style interim;
18 ignore client-updates;
19 default-lease-time 1200;
20 max-lease-time 9200;
21 option subnet-mask 255.255.255.0;
22 option broadcast-address 2.10.8.255;
23 option routers 2.10.8.254;
24 option domain-name-servers 2.10.8.254;
25 subnet 2.10.8.0 netmask 255.255.255.0 {
26 range 2.10.8.10 2.10.8.100;
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服务,下面是配置文件内容:
1 service tftp
2 {
3 disable = no
4 socket_type = dgram
5 protocol = udp
6 wait = yes
7 use = root
8 server = /usr/sbin/in.tftpd
9 server_args = -s /tftpboot -c
10 per_source = 11
11 cps = 100 2
12 flags = IPv4
13 }
其中第9行中的字符串“/tftpboot”为TFTP服务器存放文件的目录。配置完成后,将引导启动麒麟所需要的文件复制到目录/tftpboot中,具体的复制方法如表 1所示。
表 1 TFTP服务器文件复制内容
序号 文件(夹)源路径 文件(夹)目的路径
1 /usr/share/syslinux/pxelinux.0 /tftpboot/pxelinux.0
2 $(NeoKylin安装光盘)/boot/ /tftpboot/boot
3 $(NeoKylin安装光盘)/isolinux/ /tftpboot/pxelinux.cfg/
4 /tftpboot/pxelinux.cfg/isolinux.cfg /tftpboot/pxelinux.cfg/default
复制完成后,编辑修改麒麟启动配置文件/tftpboot/pxelinux.cfg/default,下面是启动配置文件内容:
1 default /pxelinux.cfg/vesamenu.c32
2 timeout 60
3 display /pxelinux.cfg/boot.msg
4 menu background splash.jpg
5 menu title Welcome to NeoKylin 3.2.2
6 menu color border 0 #ffffffff #00000000
7 menu color sel 7 #ffffffff #ff000000
8 menu color title 0 #ffffffff #00000000
9 menu color tabmsg 0 #ffffffff #00000000
10 menu color unsel 0 #ffffffff #00000000
11 menu color hotsel 0 #ff000000 #ffffffff
12 menu color hotkey 7 #ffffffff #ff000000
13 menu color scrollbar 0 #ffffffff #00000000
14 label linux
15 menu label ^Install System Standard
16 menu default
17 kernel /boot/vmlinuz
18 append initrd=/boot/initrd.img ksdevice=link ks=ftp:// 2.10.8.99/NeoKylin-3.2.2/kickstart/ks.cfg
其中第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进行编辑,也可以在原有的模板上直接以文本方式进行编辑。下面是一个自动应答文件示例:
1 install
2 url --url="ftp://2.10.8.99/NeoKylin-3.2.2"
3 lang zh_CN.UTF-8
4 keyboard us
5 rootpw --plaintext 123456
6 network --bootproto=dhcp --device=eth0 --onboot=yes
7 firewall --disabled
8 auth --useshadow --passalgo=sha512
9 selinux --permissive
10 timezone Asia/Beijing
11 graphical
12 firstboot --disable
13 logging --level=info
14 selinuxpolicy targeted
15 bootloader --append="rhgb quiet" --location=mbr –driveorder = "sda"
16 zerombr
17 clearpart --linux --initlabel
18 part swap --fstype="swap" --size=8092
19 part / --fstype="ext4" --grow --size=1
20 %packages
21 @base
22 @console-internet
23 @core
24 @debugging
25 @directory-client
26 @hardware-monitoring
27 @java-platform
28 @large-systems
29 @network-file-system-client
30 @performance
31 @perl-runtime
32 @server-platform
33 @fonts
34 @print-client
35 @basic-desktop
36 @desktop-debugging
37 @desktop-platform
38 @general-desktop
39 @graphical-admin-tools
40 @input-methods
41 @legacy-x
42 @x11
43 @internet-browser
44 @remote-desktop-clients
45 @server-applications
46 @legacy-unix
47 %end
48 %post
49 useradd new-user; echo 123456|passwd --stdin new-user
50 xset s off
51 xset dpms 0 0 0
52 %end
其中第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)[12]后被唤醒。魔术包是由AMD公司发明的一种特殊数据包格式,里面包含了待唤醒计算机网卡MAC地址等信息。WOL首先需要计算机硬件的支持,它要求计算机关机后,网卡仍处于加电待机状态,当网卡侦听到与自身MAC地址相符的魔术包后,能向主板发送开机信号。目前市场主流的计算机在硬件上均支持这项功能。此外,WOL还需要一个能发送魔术包的软件,麒麟自带的ether-wake工具包便具有该项功能。ether-wake命令需在root用户下执行,其常用的调用格式为:
# ether-wake MAC地址
利用WOL技术,可以省去人工逐台开机这一繁琐操作,但需事先收集待安装计算的MAC地址。远程唤醒待安装计算机是实现远程全自动安装麒麟的第一步。
3.2 PXE技术
PXE是由Intel公司发明的一项技术[6],它工作在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的技术[7]。利用该技术,安装过程中的人机交互可以根据预先准备好的自动应答文件(通常名为ks.cfg)自动完成。在自动应答文件中,可以指定操作系统安装文件所在的位置、客户机磁盘分区、root用户密码等基本设置,还可以指定需要安装的软件包,以及安装完成后需要执行的脚本等。自动应答文件是一种纯文本的配置文件,可以直接编辑修改,也可以通过图形化的KickStart工具软件进行修改。
转载地址:http://dpspa.baihongyu.com/