deepin安装tftp服务器_远程批量自动安装中标麒麟操作系统的方法

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工具软件进行修改。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值