中标麒麟作为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是自动安装过程的流程图,系统安装服务器与待安装客户机按照预设的流程自动进行交互,从而实现自动安装。安装过程主要包括以下步骤:
这里以麒麟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服务器的搭建方法。在搭建服务器时,需要将麒麟安装光盘插入服务器光驱以准备安装相应的软件包。
搭建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;
}
其中,第15行指定了TFTP服务器地址,这里即系统安装服务器地址;第21-26行指定了动态IP网段的设置。特别地,第26行指定了动态IP的范围,此范围必须包含DHCP服务器本身的IP地址。
最后,需要在root用户下运行以下命令重启dhcp服务:
service dhcpd restart
搭建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
}
其中第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
其中第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
搭建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
其中第2行中用url关键字指定了安装文件的位置;第5行用rootpw关键字指定了root用户的密码;在第20-47行的packages段指定了需要安装的软件包;在第48-52行的post段指定了安装结束后运行的脚本,其中第49行新建了一个用户new-user并指定其密码为123456。更多KickStart设置,请参见相关技术文档。
同样的,最后需要在root用户下运行以下命令重启ftp服务:
service vsftpd restart
WOL是一种计算机电源管理技术,它允许处于关机状态的计算机在网卡收到魔术包(Magic Packet)后被唤醒。魔术包是由AMD公司发明的一种特殊数据包格式,里面包含了待唤醒计算机网卡MAC地址等信息。WOL首先需要计算机硬件的支持,它要求计算机关机后,网卡仍处于加电待机状态,当网卡侦听到与自身MAC地址相符的魔术包后,能向主板发送开机信号。目前市场主流的计算机在硬件上均支持这项功能。此外,WOL还需要一个能发送魔术包的软件,麒麟自带的ether-wake工具包便具有该项功能。ether-wake命令需在root用户下执行,其常用的调用格式为:
ether-wake MAC地址
利用WOL技术,可以省去人工逐台开机这一繁琐操作,但需事先收集待安装计算的MAC地址。远程唤醒待安装计算机是实现远程全自动安装麒麟的第一步。
PXE是由Intel公司发明的一项技术,它工作在C/S模式,允许客户机通过网络从远程服务器下载操作系统映像并引导启动。在这个过程中,需要用DHCP协议为客户机分配IP地址以建立通信链路,还需用TFTP协议下载启动所需文件。TFTP可认为是一种简化了的FTP协议,不支持目录列表和用户认证,适合客户机在启动一个完整的操作系统前进行文件的下载。PXE可以引导启动多种操作系统,如Windows、Linux等。
研究表明,PXE同样能够引导中标麒麟操作系统,利用syslinux工具包中提供的引导文件pxelinux.0即可实现麒麟内核映像的PXE引导。麒麟内核被远程引导启动后,就可以根据启动配置文件启动安装程序。
值得注意的是,客户机通过WOL技术被远程唤醒后,需确保能自动进入PXE引导模式。客户机的引导模式在BIOS中进行设置。默认情况下,当客户机通过网卡唤醒后,BIOS已被设置为PXE模式引导。
KickStart是由Red Hat公司发明的一种自动安装Red Hat Linux的技术。利用该技术,安装过程中的人机交互可以根据预先准备好的自动应答文件(通常名为ks.cfg)自动完成。在自动应答文件中,可以指定操作系统安装文件所在的位置、客户机磁盘分区、root用户密码等基本设置,还可以指定需要安装的软件包,以及安装完成后需要执行的脚本等。自动应答文件是一种纯文本的配置文件,可以直接编辑修改,也可以通过图形化的KickStart工具软件进行修改。
网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。
加入交流群
请使用微信扫一扫!