使用 PXE+Kickstart 无人值守安装服务

        刚入职的运维新手经常会被要求去做一些安装操作系统的工作。如果按照第 1 章讲解的用光盘镜像来安装操作系统,其效率会相当低下。本章将介绍可以实现无人值守安装服务的PXE+Kickstart 服务程序,并带领大家动手安装部署 PXE + TFTP + FTP + DHCP + Kickstart 等服务程序,从而搭建出一套可批量安装 Linux 系统的无人值守安装系统。在学完本章内容之后,运维新手就可以避免枯燥乏味的重复性工作,大大提供系统安装的效率。

        一、无人值守安装系统

        本书在前面章节讲解了使用光盘镜像来安装 Linux 系统的方法, 坦白讲, 该方法适用于只安装少量 Linux 系统的情况。如果生产环境中有数百台服务器都需要安装系统,这种方式就不合时宜了。这时,我们就需要使用 PXE + TFTP +FTP + DHCP + Kickstart 服务搭建出一个无人值守安装系统。 这种无人值守安装系统可以自动地为数十台服务器安装系统, 这一方面将运维人员从重复性的工作中解救出来,也大大提升了系统安装的效率。

无人值守安装系统的工作流程

        PXE(Preboot eXecute Environment,预启动执行环境)是由 Intel 公司开发的技术,可以让计算机通过网络来启动操作系统(前提是计算机上安装的网卡支持 PXE 技术) ,主要用于在无人值守安装系统中引导客户端主机安装 Linux 操作系统。Kickstart 是一种无人值守的安装方式,其工作原理是预先把原本需要运维人员手工填写的参数保存成一个ks.cfg 文件,当安装过程中需要填写参数时则自动匹配 Kickstart 生成的文件。所以只要Kickstart 文件包含了安装过程中需要人工填写的所有参数,那么从理论上来讲完全不需要运维人员的干预,就可以自动完成安装工作。TFTP、FTP 以及 DHCP 服务程序的配置与部署已经在之前章节进行了详细讲解,这里不再赘述。

        由于当前的客户端主机并没有完整的操作系统,也就不能完成 FTP 协议的验证了,所以需要使用 TFTP 协议帮助客户端获取引导及驱动文件。 vsftpd 服务程序用于将完整的系统安装镜像通过网络传输给客户端。当然,只要能将系统安装镜像成功传输给客户端即可,因此也可以使用 httpd 来替代 vsftpd 服务程序。

        二、部署相关服务程序

        1.配置 DHCP 服务程序

        DHCP 服务程序用于为客户端主机分配可用的 IP 地址,而且这是服务器与客户端主机进行文件传输的基础,因此我们先行配置 DHCP 服务程序。首先按照下表为无人值守系统设置 IP 地址, 然后按照之后两图在虚拟机的虚拟网络编辑器中关闭自身的 DHCP 服务。

                                                无人值守系统与客户端的设置

            主机名称                                        操作系统                                        IP地址

            无人值守系统                                  CentOS 7                                  192.168.10.10

            客户端主机                                      未安装操作系统                                  -

打开虚拟机的虚拟网络编辑器
关闭虚拟机自带的 DHCP 服务

        当挂载好光盘镜像并把 Yum 仓库文件配置妥当后,就可以安装 DHCP 服务程序软件包了。

# yum install dhcp

Loaded plugins: fastestmirror, langpacks, product-id, search-disabled-repos,

              : subscription-manager

This system is not registered with an entitlement server. You can use subscription-manager to register.

Loading mirror speeds from cached hostfile

Resolving Dependencies

--> Running transaction check

---> Package dhcp.x86_64 12:4.2.5-68.el7.centos.1 will be installed

--> Finished Dependency Resolution

Dependencies Resolved

====================================================================

Package    Arch          Version                            Repository  Size

====================================================================

Installing:

dhcp        x86_64        12:4.2.5-68.el7.centos.1          base        513 k

Transaction Summary

====================================================================

Install  1 Package

Total download size: 513 k

Installed size: 1.4 M

Is this ok [y/d/N]: y

Downloading packages:

dhcp-4.2.5-68.el7.centos.1.x86_64.rpm                      | 513 kB  00:01   

Running transaction check

Running transaction test

Transaction test succeeded

Running transaction

  Installing : 12:dhcp-4.2.5-68.el7.centos.1.x86_64                        1/1

  Verifying  : 12:dhcp-4.2.5-68.el7.centos.1.x86_64                        1/1

Installed:

  dhcp.x86_64 12:4.2.5-68.el7.centos.1                                         

Complete!

        之前章节已经详细讲解了 DHCP 服务程序的配置以及部署方法,相信各位读者对相关的配置参数还有一些印象。 但是, 我们在这里使用的配置文件与之前章节中的配置文件有两个主要区别:允许了 BOOTP 引导程序协议,旨在让局域网内暂时没有操作系统的主机也能获取静态 IP地址; 在配置文件的最下面加载了引导驱动文件 pxelinux.0 (这个文件会在下面的步骤中创建) ,其目的是让客户端主机获取到 IP 地址后主动获取引导驱动文件,自行进入下一步的安装过程。

# vim /etc/dhcp/dhcpd.conf

allow booting;

allow bootp;

ddns-update-style interim;

ignore client-updates;

subnet 192.168.10.0 netmask 255.255.255.0 {

    option subnet-mask 255.255.255.0;

    option domain-name-servers 192.168.10.10;

    range dynamic-bootp 192.168.10.100 192.168.10.200;

    default-lease-time 21600;

    max-lease-time 43200;

    next-server 192.168.10.10;

    filename "pxelinux.0";

}

        在确认 DHCP 服务程序的参数都填写正确后, 重新启动该服务程序, 并将其添加到开机启动项中。这样在设备下一次重启之后,在无须人工干预的情况下,自动为客户端主机安装系统。

# systemctl restart dhcpd

# systemctl enable dhcpd

Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service.

        2.配置 TFTP 服务程序

        我们曾经在之前章节中学习过 vsftpd 服务与 TFTP 服务。vsftpd 是一款功能丰富的文件传输服务程序,允许用户以匿名开放模式、本地用户模式、虚拟用户模式来进行访问认证。但是,当前的客户端主机还没有安装操作系统,该如何进行登录认证呢?而 TFTP 作为一种基于 UDP 协议的简单文件传输协议,不需要进行用户认证即可获取到所需的文件资源。因此接下来配置 TFTP 服务程序,为客户端主机提供引导及驱动文件。当客户端主机有了基本的驱动程序之后,再通过 vsftpd 服务程序将完整的光盘镜像文件传输过去。

# yum install tftp-server xinetd

Loaded plugins: fastestmirror, langpacks, product-id, search-disabled-repos,

              : subscription-manager

This system is not registered with an entitlement server. You can use subscription-manager to register.

Loading mirror speeds from cached hostfile

Resolving Dependencies

--> Running transaction check

---> Package tftp-server.x86_64 0:5.2-22.el7 will be installed

---> Package xinetd.x86_64 2:2.3.15-13.el7 will be installed

--> Finished Dependency Resolution

Dependencies Resolved

====================================================================

Package            Arch          Version                  Repository    Size

====================================================================

Installing:

tftp-server        x86_64        5.2-22.el7              base          47 k

xinetd              x86_64        2:2.3.15-13.el7          base        128 k

Transaction Summary

====================================================================

Install  2 Packages

Total download size: 175 k

Installed size: 325 k

Is this ok [y/d/N]: y

Downloading packages:

(1/2): xinetd-2.3.15-13.el7.x86_64.rpm                    | 128 kB  00:00   

(2/2): tftp-server-5.2-22.el7.x86_64.rpm                  |  47 kB  00:03   

--------------------------------------------------------------------------------

Total                                              49 kB/s | 175 kB  00:03   

Running transaction check

Running transaction test

Transaction test succeeded

Running transaction

  Installing : 2:xinetd-2.3.15-13.el7.x86_64                                1/2

  Installing : tftp-server-5.2-22.el7.x86_64                                2/2

  Verifying  : tftp-server-5.2-22.el7.x86_64                                1/2

  Verifying  : 2:xinetd-2.3.15-13.el7.x86_64                                2/2

Installed:

  tftp-server.x86_64 0:5.2-22.el7        xinetd.x86_64 2:2.3.15-13.el7       

Complete!

        TFTP 是一种非常精简的文件传输服务程序,它的运行和关闭是由 xinetd 网络守护进程服务来管理的。xinetd 服务程序会同时监听系统的多个端口,然后根据用户请求的端口号调取相应的服务程序来响应用户的请求。需要开启 TFTP 服务程序,只需在 xinetd 服务程序的配置文件中把 disable 参数改成 no 就可以了。 保存配置文件并退出, 然后重启 xinetd服务程序,并将其加入到开机启动项中(在 RHEL 7 系统中,已经默认启用了 xinetd 服务程序,因此在将其添加到开机启动项中的时候没有输出信息属于正常情况) 。

# vim /etc/xinetd.d/tftp

service tftp

{

        socket_type = dgram

        protocol = udp

        wait = yes

        user = root

        server = /usr/sbin/in.tftpd

        server_args = -s /var/lib/tftpboot

        disable = no

        per_source = 11

        cps = 100 2

        flags = IPv4

}

# yum install tftp

        测试tftp:

# tftp 192.168.10.10

tftp> get vmlinuz

tftp> quit

[root@linuxprobe ~]# ls

anaconda-ks.cfg  Documents vmlinuz

        如果成功获取vmlinuz文件,表示成功。

# systemctl restart xinetd

# systemctl enable xinetd

        TFTP 服务程序默认使用的是 UDP 协议,占用的端口号为 69,所以在生产环境中还需要在 firewalld 防火墙管理工具中写入使其永久生效的允许策略,以便让客户端主机顺利获取到引导文件。

# firewall-cmd --permanent --add-port=69/udp

success

# firewall-cmd --reload

success

        3.配置 SYSLinux 服务程序

        SYSLinux 是一个用于提供引导加载的服务程序。与其说 SYSLinux 是一个服务程序,不如说更需要里面的引导文件,在安装好 SYSLinux 服务程序软件包后,/usr/share/syslinux 目录中会出现很多引导文件。

# yum install syslinux

Loaded plugins: fastestmirror, langpacks, product-id, search-disabled-repos,

              : subscription-manager

This system is not registered with an entitlement server. You can use subscription-manager to register.

Loading mirror speeds from cached hostfile

Resolving Dependencies

--> Running transaction check

---> Package syslinux.x86_64 0:4.05-15.el7 will be installed

--> Finished Dependency Resolution

Dependencies Resolved

====================================================================

Package            Arch            Version              Repository      Size

====================================================================

Installing:

syslinux          x86_64          4.05-15.el7          base          990 k

Transaction Summary

====================================================================

Install  1 Package

Total download size: 990 k

Installed size: 2.3 M

Is this ok [y/d/N]: y

Downloading packages:

syslinux-4.05-15.el7.x86_64.rpm                            | 990 kB  00:01   

Running transaction check

Running transaction test

Transaction test succeeded

Running transaction

  Installing : syslinux-4.05-15.el7.x86_64                                  1/1

  Verifying  : syslinux-4.05-15.el7.x86_64                                  1/1

Installed:

  syslinux.x86_64 0:4.05-15.el7                                               

Complete!

        我们首先需要把 SYSLinux 提供的引导文件复制到 TFTP 服务程序的默认目录中,也就是前文提到的文件 pxelinux.0,这样客户端主机就能够顺利地获取到引导文件了。另外在 RHEL 7 系统光盘镜像中也有一些我们需要调取的引导文件。 确认光盘镜像已经被挂载到/media/cdrom 目录后,使用复制命令将光盘镜像中自带的一些引导文件也复制到 TFTP 服务程序的默认目录中。

# cd /var/lib/tftpboot

# cp /usr/share/syslinux/pxelinux.0 .

# cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} .

# cp /media/cdrom/isolinux/{vesamenu.c32,boot.msg} .

        然后在 TFTP 服务程序的目录中新建 pxelinux.cfg 目录,虽然该目录的名字带有后缀,但依然也是目录, 而非文件! 将系统光盘中的开机选项菜单复制到该目录中, 并命名为 default。这个 default 文件就是开机时的选项菜单,如下图所示。

Linux 系统的引导菜单界面

# mkdir pxelinux.cfg

# cp /media/cdrom/isolinux/isolinux.cfg pxelinux.cfg/default

        默认的开机菜单中有两个选项,要么是安装系统,要么是对安装介质进行检验。既然我们已经确定采用无人值守的方式安装系统,还需要为每台主机手动选择相应的选项,未免与我们的主旨(无人值守安装)相悖。现在我们编辑这个 default 文件,把第 1 行的 default 参数修改为 linux,这样系统在开机时就会默认执行那个名称为 linux 的选项了。对应的 linux 选项大约在 64 行, 我们将默认的光盘镜像安装方式修改成 FTP 文件传输方式, 并指定好光盘镜像的获取网址以及 Kickstart 应答文件的获取路径:

# vim pxelinux.cfg/default

1 default linux

2 timeout 600

3

4 display boot.msg

5

6 # Clear the screen when exiting the menu, instead of leaving the menu displa yed.

7 # For vesamenu, this means the graphical background is still displayed witho ut

8 # the menu itself for as long as the screen remains in graphics mode.

9 menu clear

10 menu background splash.png

11 menu title Red Hat Enterprise Linux 7.0

12 menu vshift 8

13 menu rows 18

14 menu margin 8

15 #menu hidden

16 menu helpmsgrow 15

17 menu tabmsgrow 13

18

19 # Border Area

20 menu color border * #00000000 #00000000 none

21

22 # Selected item

23 menu color sel 0 #ffffffff #00000000 none

24

25 # Title bar

26 menu color title 0 #ff7ba3d0 #00000000 none

27

28 # Press [Tab] message

29 menu color tabmsg 0 #ff3a6496 #00000000 none

30

31 # Unselected menu item

32 menu color unsel 0 #84b8ffff #00000000 none

33

34 # Selected hotkey

35 menu color hotsel 0 #84b8ffff #00000000 none

36

37 # Unselected hotkey

38 menu color hotkey 0 #ffffffff #00000000 none

39

40 # Help text

41 menu color help 0 #ffffffff #00000000 none

42

43 # A scrollbar of some type? Not sure.

44 menu color scrollbar 0 #ffffffff #ff355594 none

45

46 # Timeout msg

47 menu color timeout 0 #ffffffff #00000000 none

48 menu color timeout_msg 0 #ffffffff #00000000 none

49

50 # Command prompt text

51 menu color cmdmark 0 #84b8ffff #00000000 none

52 menu color cmdline 0 #ffffffff #00000000 none

53

54 # Do not display the actual menu unless the user presses a key. All that is

displayed is a timeout message.

55

56 menu tabmsg Press Tab for full configuration options on menu items.

57

58 menu separator # insert an empty line

59 menu separator # insert an empty line

59 menu separator # insert an empty line

60

61 label linux

62 menu label ^Install Red Hat Enterprise Linux 7.0

63 kernel vmlinuz

64 append initrd=initrd.img inst.stage2=ftp://192.168.10.10 ks=ftp://192.168.10.10/pub/ks.cfg quiet

65

………………省略部分输出信息………………

        4.配置 vsftpd 服务程序

        在我们这套无人值守安装系统的服务中, 光盘镜像是通过 FTP 协议传输的, 因此势必要用到 vsftpd 服务程序。当然,也可以使用 httpd 服务程序来提供 Web 网站访问的方式,只要能确保将光盘镜像顺利传输给客户端主机即可。如果打算使用 Web 网站服务来提供光盘镜像,一定记得将上面配置文件中的光盘镜像获取网址和 Kickstart 应答文件获取网址修改一下。

# yum install vsftpd

Loaded plugins: fastestmirror, langpacks, product-id, search-disabled-repos,

              : subscription-manager

This system is not registered with an entitlement server. You can use subscription-manager to register.

Loading mirror speeds from cached hostfile

Resolving Dependencies

--> Running transaction check

---> Package vsftpd.x86_64 0:3.0.2-25.el7 will be installed

--> Finished Dependency Resolution

Dependencies Resolved

====================================================================

Package          Arch            Version                Repository      Size

====================================================================

Installing:

vsftpd          x86_64          3.0.2-25.el7            base          171 k

Transaction Summary

====================================================================

Install  1 Package

Total download size: 171 k

Installed size: 353 k

Is this ok [y/d/N]: y

Downloading packages:

vsftpd-3.0.2-25.el7.x86_64.rpm                            | 171 kB  00:03   

Running transaction check

Running transaction test

Transaction test succeeded

Running transaction

  Installing : vsftpd-3.0.2-25.el7.x86_64                                  1/1

  Verifying  : vsftpd-3.0.2-25.el7.x86_64                                  1/1

Installed:

  vsftpd.x86_64 0:3.0.2-25.el7                                                 

Complete!

# yum install ftp

        测试ftp:

# ftp 192.168.10.10

Connected to 192.168.10.10 (192.168.10.10).

220 (vsFTPd 3.0.2)

Name (192.168.10.10:root): anonymous

331 Please specify the password.

Password:

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> ls

227 Entering Passive Mode (192,168,10,10,77,117).

150 Here comes the directory listing.

dr-xr-xr-x    3 0        0              17 Aug 20 08:24 EFI

-r--r--r--    1 0        0            8266 Aug 20 08:24 EULA

-r--r--r--    1 0        0          18092 Aug 20 08:24 GPL

dr-xr-xr-x    2 0        0              41 Aug 20 08:24 LiveOS

dr-xr-xr-x    2 0        0          225280 Aug 20 08:26 Packages

-r--r--r--    1 0        0            3375 Aug 20 08:27 RPM-GPG-KEY-redhat-beta

-r--r--r--    1 0        0            3211 Aug 20 08:27 RPM-GPG-KEY-redhat-release

-r--r--r--    1 0        0            1568 Aug 20 08:27 TRANS.TBL

dr-xr-xr-x    4 0        0              52 Aug 20 08:24 addons

dr-xr-xr-x    3 0        0              54 Aug 20 08:24 images

dr-xr-xr-x    2 0        0            4096 Aug 20 08:24 isolinux

-r--r--r--    1 0        0            108 Aug 20 08:25 media.repo

drwxr-xr-x    2 0        0              19 Aug 22 02:12 pub

dr-xr-xr-x  24 0        0            4096 Aug 20 08:27 release-notes

dr-xr-xr-x    2 0        0            4096 Aug 20 08:27 repodata

226 Directory send OK.

ftp> cd pub

250 Directory successfully changed.

ftp> ls

227 Entering Passive Mode (192,168,10,10,22,168).

150 Here comes the directory listing.

-rw-r--r--    1 0        0            1291 Aug 20 08:36 ks.cfg

226 Directory send OK.

ftp> quit

221 Goodbye.

# systemctl restart vsftpd

# systemctl enable vsftpd

Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.

        在确认系统光盘镜像已经正常挂载到/media/cdrom 目录后, 把目录中的光盘镜像文件全部复制到 vsftpd 服务程序的工作目录中。

# cp -r /media/cdrom/* /var/ftp

        这个过程大约需要 3~5 分钟。在此期间,我们也别闲着,在 firewalld 防火墙管理工具中写入使 FTP 协议永久生效的允许策略,然后在 SELinux 中放行 FTP 传输:

# firewall-cmd --permanent --add-service=ftp

success

# firewall-cmd --reload

success

# setsebool -P ftpd_connect_all_unreserved=on

        5.创建 KickStart 应答文件

        毕竟,我们使用 PXE + Kickstart 部署的是一套“无人值守安装系统服务” ,而不是“无人值守传输系统光盘镜像服务” , 因此还需要让客户端主机能够一边获取光盘镜像, 还能够一边自动帮我们填写好安装过程中出现的选项。简单来说,如果生产环境中有 100 台服务器,它们需要安装相同的系统环境,那么在安装过程中单击的按钮和填写的信息也应该都是相同的。那么,为什么不创建一个类似于备忘录的需求清单呢?这样,在无人值守安装系统时,可以从这个需求清单中找到相应的选项值,从而免去了手动输入之苦,更重要的是,也彻底解放了人的干预,彻底实现无人值守自动安装系统,而不是单纯地传输系统光盘镜像。

        有了上文做铺垫,相信大家现在应该可以猜到 Kickstart 其实并不是一个服务程序,而是一个应答文件了。是的!Kickstart 应答文件中包含了系统安装过程中需要使用的选项和参数信息,系统可以自动调取这个应答文件的内容,从而彻底实现了无人值守安装系统。那么,既然这个文件如此重要,该去哪里找呢?其实在 root 管理员的家目录中有一个名为 anaconda-ks.cfg 的文件,它就是应答文件。下面将这个文件复制到 vsftpd 服务程序的工作目录中(在开机选项菜单的配置文件中已经定义了该文件的获取路径,也就是 vsftpd 服务程序数据目录中的 pub 子目录中) 。使用 chmod 命令设置该文件的权限,确保所有人都有可读的权限,以保证客户端主机可以顺利获取到应答文件及里面的内容:

# cp ~/anaconda-ks.cfg /var/ftp/pub/ks.cfg

# chmod +r /var/ftp/pub/ks.cfg

        Kickstart 应答文件并没有想象中的那么复杂,它总共只有 46 行左右的参数和注释内容,大家完全可以通过参数的名称及介绍来快速了解每个参数的作用。在这里挑选几个比较有代表性的参数进行讲解,其他参数建议大家自行修改测试。

        首先把第 6 行的光盘镜像安装方式修改成 FTP 协议,仔细填写好 FTP 服务器的 IP 地址,并用本地浏览器尝试打开下检查有没有报错。然后把第 21 行的时区修改成上海(Asia/Shanghai),最后再把 29 行的磁盘选项设置为清空所有磁盘内容并初始化磁盘:

# vim /var/ftp/pub/ks.cfg

1 #version=RHEL7

2 # System authorization information

3 auth --enableshadow --passalgo=sha512

4

5 # Use CDROM installation media

6 url --url=ftp://192.168.10.10

7 # Run the Setup Agent on first boot

8 firstboot --enable

9 ignoredisk --only-use=sda

10 # Keyboard layouts

11 keyboard --vckeymap=us --xlayouts='us'

12 # System language

13 lang en_US.UTF-8

14

15 # Network information

16 network --bootproto=dhcp --device=eno16777728 --onboot=off --ipv6=auto

17 network --hostname=localhost.localdomain

18 # Root password

19 rootpw --iscrypted $6$pDjJf42g8C6pL069$iI.PX/yFaqpo0ENw2pa7MomkjLyoae2zjMz2

UZJ7b H3UO4oWtR1.Wk/hxZ3XIGmzGJPcs/MgpYssoi8hPCt8b/

20 # System timezone

21 timezone Asia/Shanghai --isUtc

22 user --name=linuxprobe --password=$6$a9v3InSTNbweIR7D$JegfYWbCdoOokj9sodEccdO.

zL F4oSH2AZ2ss2R05B6Lz2A0v2K.RjwsBALL2FeKQVgf640oa/tok6J.7GUtO/ --iscrypted --gecos =

"linuxprobe"

23 # X Window System configuration information

24 xconfig --startxonboot

25 # System bootloader configuration

26 bootloader --location=mbr --boot-drive=sda

27 autopart --type=lvm

28 # Partition clearing information

29 clearpart --all --initlabel

30

31 %packages

32 @base

33 @core

34 @desktop-debugging

35 @dial-up

36 @fonts

37 @gnome-desktop

38 @guest-agents

39 @guest-desktop-agents

40 @input-methods

41 @internet-browser

42 @multimedia

43 @print-client

44 @x11

45

46 %end

        如果觉得系统默认自带的应答文件参数较少, 不能满足生产环境的需求, 则可以通过 Yum软件仓库来安装 system-config-kickstart 软件包。这是一款图形化的 Kickstart 应答文件生成工具,可以根据自己的需求生成自定义的应答文件,然后将生成的文件放到/var/ftp/pub 目录中并将名字修改为 ks.cfg 即可。

        四、自动部署客户端主机

        在按照上文讲解的方法成功部署各个相关的服务程序后, 就可以使用 PXE + Kickstart 无人值守安装系统了。在采用下面的步骤建立虚拟主机时,一定要把客户端的网卡模式设定成与服务端一致的“仅主机模式” ,否则两台设备无法进行通信,也就更别提自动安装系统了。其余硬件配置选项并没有强制性要求,大家可参考这里的配置选项来设定。

        1.打开“新建虚拟机向导”程序,选择“典型(推荐) ”配置类型,然后单击“下一步”按钮,如下图所示。

选择虚拟机的配置类型

        2.将虚拟机操作系统的安装来源设置为“稍后安装操作系统” 。这样做的目的是让虚拟机真正从网络中获取系统安装镜像,同时也可避免 VMware Workstation 虚拟机软件按照内设的方法自行安装系统。单击“下一步”按钮,如下图所示。

设置虚拟机操作系统的安装来源

        3.将“客户机操作系统”设置为“Red Hat Enterprise Linux 7 64 位” ,然后单击“下一步”按钮,如下图所示。

选择客户端主机的操作系统

        4.对虚拟机进行命名并设置安装位置。大家可自行定义虚拟机的名称,而安装位置则尽量选择磁盘空间较大的分区。然后单击“下一步”按钮,如下图所示。

命名虚拟机并设置虚拟机的安装位置

        5.指定磁盘容量。这里将“最大磁盘大小”设置为 20GB,指的是虚拟机系统能够使用的最大上限,而不是会被立即占满,因此设置得稍微大一些也没有关系。然后单击“下一步”按钮,如下图所示。

将磁盘容量指定为 20GB

        6.结束“新建虚拟机向导程序”后,先不要着急打开虚拟机系统。大家还需要单击第一个图中的“自定义硬件”按钮,在弹出的如第二个图所示的界面中,把“网络适配器”设备同样也设置为“仅主机模式” (这个步骤非常重要) ,然后单击“确定”按钮。

单击虚拟机的“自定义硬件”按钮
设置虚拟机网络适配器设备为仅主机模式

        现在,我们就同时准备好了 PXE + Kickstart 无人值守安装系统与虚拟主机。在生产环境中,大家只需要将配置妥当的服务器上架,接通服务器和客户端主机之间的网线,然后启动客户端主机即可。接下来就会按照以下两张图那样,开始传输光盘镜像文件并进行自动安装了 — 期间完全无须人工干预,直到安装完毕时才需要运维人员进行简单的初始化工作。

自动传输光盘镜像文件并安装系统
自动安装系统,无须人工干预

        由此可见,当生产环境工作中有数百台服务器需要批量安装系统时,使用无人值守安装系统的便捷性是不言而喻的。

        测试成功,建议大家建造一个这样的服务器,以便在实际工作中维护使用,有技术含量。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,117评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,328评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,839评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,007评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,384评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,629评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,880评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,593评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,313评论 1 243
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,575评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,066评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,392评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,052评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,082评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,844评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,662评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,575评论 2 270

推荐阅读更多精彩内容