加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

LINUX教程:RHEL7/CentOS7 PXE+Kickstart自动化系统安装

发布时间:2020-12-13 17:38:07 所属栏目:Linux 来源:网络整理
导读:《LINUX教程:RHEL7/CentOS7 PXE+Kickstart自动化系统安装》要点: 本文介绍了LINUX教程:RHEL7/CentOS7 PXE+Kickstart自动化系统安装,希望对您有用。如果有疑问,可以联系我们。 PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新

《LINUX教程:RHEL7/CentOS7 PXE+Kickstart自动化系统安装》要点:
本文介绍了LINUX教程:RHEL7/CentOS7 PXE+Kickstart自动化系统安装,希望对您有用。如果有疑问,可以联系我们。

PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分派IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统.PXE可以引导多种操作系统,如:Windows95/98/2000/windows2003/windows2008/win7/win8,linux等.

1. 系统情况介绍

虚拟机软件:VirtualBox

虚拟机网络衔接方式:仅主机(Host-Only)网络

服务端操作体系:CentOS 7

设置装备摆设服务:DHCP+TFTP+FTP(也可以使用HTTP、NFS等)

完成目标:搭建pxe情况,结合kickstart响应文件,完成CentOS 7系统的自动化安装.

1.1 服务器及领导文件介绍

  • 主要文件

    系统安装时,由领导文件加载内核文件后才可以看到系统安装界面.

    • pxelinux.0 - 系统领导文件

    • vmlinuz、initrd.img - 内核文件

  • DHCP 服务器

    为客户端提供需要的网络信息,如IP、netmask、gateway、dns等,并向客户端提供引导文件(pxelinux.0)的位置及TFTP服务器地址等.

  • TFTP 服务器

    主要为客户端提供内核文件和领导文件.

  • FTP 服务器

    为客户端提供kickstart响应文件和体系镜像文件.

pxe系统安装时,首先由dhcp服务器向客户端提供IP、引导文件地位、tftp地址等信息,客户端获取相关信息后,通过TFTP下载引导文件和内核文件,引导系统启动,并通过ftp服务器下载系统安装过程中所需的各项软件包和kickstart响应文件.

kickstart响应文件主要用来自动设置时区、暗码、系统分区、软件包选择等信息.

1.2 服务打量细环境

详细系统环境为:

[root@pxe1?~]#?uname?-a
Linux?pxe1?3.10.0-514.el7.x86_64?#1?SMP?Tue?Nov?22?16:42:41?UTC?2016?x86_64?x86_64?x86_64?GNU/Linux
[root@pxe1?~]#?
[root@pxe1?~]#?hostnamectl
? ?Static?hostname:?pxe1
? ? ? ? ?Icon?name:?computer-vm
? ? ? ? ? ?Chassis:?vm
? ? ? ? Machine?ID:?18ef8dea83044565b82bf6bed368cdab
? ? ? ? ? ?Boot?ID:?9beedf23c4e14016a0a458ddcd9c487b
? ? Virtualization:?kvm
? Operating?System:?CentOS?Linux?7?(Core)
? ? ? ?CPE?OS?Name:?cpe:/o:centos:centos:7
? ? ? ? ? ? Kernel:?Linux?3.10.0-514.el7.x86_64
? ? ? Architecture:?x86-64
[root@pxe1?~]#?cat?/etc/hosts
127.0.0.1? ?localhost?localhost.localdomain?localhost4?localhost4.localdomain4
::1? ? ? ? ?localhost?localhost.localdomain?localhost6?localhost6.localdomain6
192.168.56.14?pxe1? ? 
[root@pxe1?yum.repos.d]#?ifconfig?
enp0s3:?flags=4163<UP,BROADCAST,RUNNING,MULTICAST>? mtu?1500
? ? ? ? inet?192.168.56.14? netmask?255.255.255.0? broadcast?192.168.56.255
? ? ? ? inet6?fe80::a00:27ff:fe43:c11d? prefixlen?64? scopeid?0x20<link>
? ? ? ? ether?08:00:27:43:c1:1d? txqueuelen?1000? (Ethernet)
? ? ? ? RX?packets?1441? bytes?121057?(118.2?KiB)
? ? ? ? RX?errors?0? dropped?0? overruns?0? frame?0
? ? ? ? TX?packets?928? bytes?98905?(96.5?KiB)
? ? ? ? TX?errors?0? dropped?0?overruns?0? carrier?0? collisions?0
...

1.3 服务端初始环境准备

封闭SELinux和防火墙:

#?为了后续配置便利,首先关闭系统SELinux和防火墙
#?关闭SELinux,修改文件使SELINUX=disabled
[root@pxe1?~]#?vim?/etc/selinux/config?
#?This?file?controls?the?state?of?SELinux?on?the?system.
#?SELINUX=?can?take?one?of?these?three?values:
#? ? ?enforcing?-?SELinux?security?policy?is?enforced.
#? ? ?permissive?-?SELinux?prints?warnings?instead?of?enforcing.
#? ? ?disabled?-?No?SELinux?policy?is?loaded.
SELINUX=disabled
#?SELINUXTYPE=?can?take?one?of?three?two?values:
#? ? ?targeted?-?Targeted?processes?are?protected,#? ? ?minimum?-?Modification?of?targeted?policy.?Only?selected?processes?are?protected.?
#? ? ?mls?-?Multi?Level?Security?protection.
SELINUXTYPE=targeted
#重启系统后配置生效,查看SELinux的状态.
[root@pxe1?~]#?sestatus?
SELinux?status:? ? ? ? ? ? ? ? ?disabled
#关闭防火墙
[root@pxe1?~]#?systemctl?stop?firewalld
[root@pxe1?~]#?systemctl?disable?firewalld
[root@pxe1?~]#?systemctl?status?firewalld
●?firewalld.service?-?firewalld?-?dynamic?firewall?daemon
? ?Loaded:?loaded?(/usr/lib/systemd/system/firewalld.service;?disabled;?vendor?preset:?enabled)
? ?Active:?inactive?(dead)
? ? ?Docs:?man:firewalld(1)

1.4 客户端环境准备

在VirtualBox中新建linux虚拟机:

  • 名称:随意填写

  • 类型:linux

  • 版本:Red Hat(64-bit)

  • 虚拟硬盘:

    现在创建虚拟硬盘,注意分配足够的硬盘大小,避免因硬盘空间不敷造成安装失败.我这里选择20G,动态分配.

  • 开机启动次序:网络启动排第一位.

    设置办法:选中新建虚拟机,设置--系统--主板--启动顺序--设置网络为第一位

    LINUX教程:RHEL7/CentOS7 PXE+Kickstart自动化系统安装

  • 收集:仅主机(Host-Only)收集

    设置办法:选中新建虚拟机,设置--网络--网卡1--启用网络连接--连接方式:Host-Only

2. 配置yum源

这里主要介绍使用系统光盘配置本地yum源的办法.

起首挂载系统光盘:

在虚拟机右下角单击光盘图标,选择必要挂载的系统镜像文件.

wKiom1ko9N2TVK_mAAJO4uq5x6s590.png-wh_50

创立yum源配置文件:

#?首先将光盘挂载到/mnt目录下
[root@pxe1?~]#?umount?/dev/cdrom?-l?
[root@pxe1?~]#?mount?/dev/cdrom?/mnt/
mount:?/dev/sr0?is?write-protected,?mounting?read-only
#创建yum配置文件
[root@pxe1?~]#?cd?/etc/yum.repos.d/
[root@pxe1?yum.repos.d]#?ls
CentOS-Base.repo? CentOS-Debuginfo.repo? CentOS-Sources.repo? CentOS-fasttrack.repo
CentOS-CR.repo? ? CentOS-Media.repo? ? ? CentOS-Vault.repo
#避免系统中的repo文件影响,首先将其备份
[root@pxe1?yum.repos.d]#?mkdir?bak
[root@pxe1?yum.repos.d]#?mv?*.repo?bak/
[root@pxe1?yum.repos.d]#?ls
bak
[root@pxe1?yum.repos.d]#?vim?my.repo
[development]? ? ? ? ? <--注意:这里必定要写development
name=my-centos7-dvd
baseurl=file:///mnt
enabled=1
gpgcheck=0

注意:my.repo文件中第一行[development],中括号中建议填写development,填写其他内容会导致后面system-config-kickstart命令生成kickstart文件文件时,出现以下问题:

由于下载软件包信息失败,软件包选择被制止

LINUX教程:RHEL7/CentOS7 PXE+Kickstart自动化系统安装

创立yum缓存:

[root@pxe1?yum.repos.d]#?yum?clean?all
Failed?to?set?locale,?defaulting?to?C
Loaded?plugins:?fastestmirror,?langpacks
Cleaning?repos:?development
Cleaning?up?everything
[root@pxe1?yum.repos.d]#?yum?makecache
Failed?to?set?locale,?langpacks
development? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |?3.6?kB? 00:00:00? ? ?
(1/4):?development/filelists_db? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |?3.0?MB? 00:00:00? ? ?
(2/4):?development/group_gz? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |?155?kB? 00:00:00? ? ?
(3/4):?development/other_db? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |?1.3?MB? 00:00:00? ? ?
(4/4):?development/primary_db? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |?3.0?MB? 00:00:00? ? ?
Determining?fastest?mirrors
Metadata?Cache?Created

3. DHCP服务器配置

dhcp为客户端提供需要的网络信息,并向客户端提供引导文件(pxelinux.0)的位置及TFTP服务器地址等.

3.1 安装dhcp软件包

[root@pxe1?yum.repos.d]#?yum?install?-y?dhcp
...
Installed:
? dhcp.x86_64?12:4.2.5-47.el7.centos? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
Complete!

3.2 修改dhcp配置文件

dhcp配置文件地位:/etc/dhcp/dhcpd.conf

[root@pxe1?yum.repos.d]#?cat?/etc/dhcp/dhcpd.conf?
#
#?DHCP?Server?Configuration?file.
#? ?see?/usr/share/doc/dhcp*/dhcpd.conf.example
#? ?see?dhcpd.conf(5)?man?page
subnet?192.168.56.0?netmask?255.255.255.0?{
? range?192.168.56.10?192.168.56.20;
? default-lease-time?600;
? max-lease-time?7200;
? filename?"pxelinux.0";
? next-server?192.168.56.14;
}
#?subnet?192.168.56.0?netmask?255.255.255.0?服务端IP网段及掩码
#?range?192.168.56.10?192.168.56.20;?dhcp分发的地址范围,最好将本机IP包括在内.
#?default-lease-time?600;max-lease-time?7200;?IP地址租约时间.
#?filename?"pxelinux.0";?指定引导文件位置,这里是TFTP根目录下的pxelinux.0.
#? next-server?192.168.56.14;?TFTP服务器地址.

3.3 启动dhcp服务

[root@pxe1?yum.repos.d]#?systemctl?restart?dhcpd
[root@pxe1?yum.repos.d]#?systemctl?enable?dhcpd
Created?symlink?from?/etc/systemd/system/multi-user.target.wants/dhcpd.service?to?/usr/lib/systemd/system/dhcpd.service.
[root@pxe1?yum.repos.d]#?systemctl?status?dhcpd
●?dhcpd.service?-?DHCPv4?Server?Daemon
? ?Loaded:?loaded?(/usr/lib/systemd/system/dhcpd.service;?enabled;?vendor?preset:?disabled)
? ?Active:?active?(running)?since?Thu?2017-05-25?11:00:26?CST;?26s?ago
? ? ?Docs:?man:dhcpd(8)
? ? ? ? ? ?man:dhcpd.conf(5)
?Main?PID:?11849?(dhcpd)
? ?Status:?"Dispatching?packets..."
? ?CGroup:?/system.slice/dhcpd.service
? ? ? ? ? ?└─11849?/usr/sbin/dhcpd?-f?-cf?/etc/dhcp/dhcpd.conf?-user?dhcpd?-group?dhcpd?--no-pid
May?25?11:00:26?pxe1?dhcpd[11849]:?No?subnet?declaration?for?virbr0?(192.168.122.1).
May?25?11:00:26?pxe1?dhcpd[11849]:?**?Ignoring?requests?on?virbr0.? If?this?is?not?what
May?25?11:00:26?pxe1?dhcpd[11849]:? ? you?want,?please?write?a?subnet?declaration
May?25?11:00:26?pxe1?dhcpd[11849]:? ? in?your?dhcpd.conf?file?for?the?network?segment
May?25?11:00:26?pxe1?dhcpd[11849]:? ? to?which?interface?virbr0?is?attached.?**
May?25?11:00:26?pxe1?dhcpd[11849]:?
May?25?11:00:26?pxe1?dhcpd[11849]:?Listening?on?LPF/enp0s3/08:00:27:43:c1:1d/192.168.56.0/24
May?25?11:00:26?pxe1?dhcpd[11849]:?Sending?on? ?LPF/enp0s3/08:00:27:43:c1:1d/192.168.56.0/24
May?25?11:00:26?pxe1?dhcpd[11849]:?Sending?on? ?Socket/fallback/fallback-net
May?25?11:00:26?pxe1?systemd[1]:?Started?DHCPv4?Server?Daemon.
[root@pxe1?yum.repos.d]#?netstat?-nulp?|?grep?dhcp
udp? ? ? ? 0? ? ? 0?0.0.0.0:67? ? ? ? ? ? ? 0.0.0.0:*? ? ? ? ? ? ? ? ? ? ? ? ? ?11849/dhcpd? ? ? 
udp? ? ? ? 0? ? ? 0?0.0.0.0:16465? ? ? ? ? ?0.0.0.0:*? ? ? ? ? ? ? ? ? ? ? ? ? ?11849/dhcpd? ? ? 
udp6? ? ? ?0? ? ? 0?:::31651? ? ? ? ? ? ? ? :::*? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 11849/dhcpd

注意:如果启动dhcp服务报错,请查看/var/log/messages日志,会有明显的错误提示,多数是配置文件格式或内容错误造成的.

3.4 验证DHCP服务配置

dhcp服务器配置完成后,便可启动之前准备的客户端虚拟机查看是否可以获取到IP地址,能正常获取IP则阐明配置正常,如下:

LINUX教程:RHEL7/CentOS7 PXE+Kickstart自动化系统安装

至此,dhcp服务器设置装备摆设完成.

4. TFTP服务器配置

TFTP服务器主要为客户端提供内核文件和领导文件.

4.1 安装TFTP服务器

安装办法:

[root@pxe1?/]#?yum?install?-y?tftp-server
...
Installed:
? tftp-server.x86_64?0:5.2-13.el7? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 
Complete!
#?安装tftp命令,可用来测试TFTP服务能否正常运行
[root@pxe1?/]#?yum?install?-y?tftp

4.2 启动TFTP服务器

#?编纂配置文件/etc/xinetd.d/tftp?
[root@pxe1?/]#?vim?/etc/xinetd.d/tftp?
disable   =?no? ?<--将yes修改为no

启动tftp服务:

#?首先确保tftp.socket正常
[root@pxe1?/]#?systemctl?start?tftp.socket
[root@pxe1?/]#?systemctl?enable?tftp.socket
Created?symlink?from?/etc/systemd/system/sockets.target.wants/tftp.socket?to?/usr/lib/systemd/system/tftp.socket.
[root@pxe1?/]#?systemctl?status?tftp.socket
●?tftp.socket?-?Tftp?Server?Activation?Socket
? ?Loaded:?loaded?(/usr/lib/systemd/system/tftp.socket;?enabled;?vendor?preset:?disabled)
? ?Active:?active?(listening)?since?四?2017-05-25?14:57:33?CST;?1h?0min?ago
? ?Listen:?[::]:69?(Datagram)
5月?25?14:57:33?pxe1?systemd[1]:?Listening?on?Tftp?Server?Activation?Socket.
5月?25?14:57:33?pxe1?systemd[1]:?Starting?Tftp?Server?Activation?Socket.
#?然后启动tftp.service
[root@pxe1?~]#?systemctl?restart?tftp.service
[root@pxe1?~]#?systemctl?enable?tftp.service
Created?symlink?from?/etc/systemd/system/sockets.target.wants/tftp.socket?to?/usr/lib/systemd/system/tftp.socket.
[root@pxe1?~]#?systemctl?status?tftp.service
●?tftp.service?-?Tftp?Server
? ?Loaded:?loaded?(/usr/lib/systemd/system/tftp.service;?indirect;?vendor?preset:?disabled)
? ?Active:?active?(running)?since?四?2017-05-25?14:57:33?CST;?20s?ago
? ? ?Docs:?man:in.tftpd
?Main?PID:?14621?(in.tftpd)
? ?CGroup:?/system.slice/tftp.service
? ? ? ? ? ?└─14621?/usr/sbin/in.tftpd?-s?/var/lib/tftpboot
5月?25?14:57:33?pxe1?systemd[1]:?Started?Tftp?Server.
5月?25?14:57:33?pxe1?systemd[1]:?Starting?Tftp?Server...

4.3 导入需要文件

需要导入TFTP服务器的主要文件有:

  • 领导文件 - pxelinux.0

  • 内核文件:vmlinuz initrd.img

  • 领导菜单:isolinux.cfg -- 开机后选择启动项的菜单文件

4.3.1 导入领导文件

领导文件pxelinux.0由软件包syslinux生成,首先要安装syslinux软件包:

[root@pxe1?~]#?yum?install?-y?syslinux
#?将pxelinux.0拷贝至TFTP根目次下
[root@pxe1?~]#?cp?/usr/share/syslinux/pxelinux.0?/var/lib/tftpboot/

4.3.2 导入内核及菜单文件

内核文件:vmlinuz initrd.img,一般存在于系统光盘的pxeboot目次下:

[root@pxe1?syslinux]#?cd?/mnt/images/pxeboot/
[root@pxe1?pxeboot]#?ls
initrd.img? TRANS.TBL? vmlinuz

但是我们可以发现,在isolinux目录下也有相同的内容,同时,还包含引导菜单(isolinux.cfg)及其启动时用到的文件:

isolinux.cfg - 领导菜单配置文件

vesamenu.c32 - 体系自带的两种窗口模块之一

boot.msg - 窗口提示信息文件,提示信息在菜单呈现前呈现,显示时间较短,可以添加些艺术字之类的信息.

splash.png - 窗口配景图片

因此,我们可以从系统光盘的images/pxeboot/目录下复制内核文件,也可以从isolinux下复制,为了方便起见,这里从isolinux目录下复制,可以只复制我们必要的文件,如:

isolinux.cfg vesamenu.c32 boot.msg splash.png

也可以将isolinux目次下的文件全部复制到TFTP根目次/var/lib/tftpboot

[root@pxe1?/]#?cp?-rf?/mnt/isolinux/*?/var/lib/tftpboot/

然后准备pxe领导菜单:

[root@pxe1?/]#?mkdir?/var/lib/tftpboot/pxelinux.cfg
[root@pxe1?/]#?mv?/var/lib/tftpboot/isolinux.cfg?/var/lib/tftpboot/pxelinux.cfg/default
[root@pxe1?/]#?cd?/var/lib/tftpboot/pxelinux.cfg
[root@pxe1?pxelinux.cfg]#?ls
default

改动引导菜单选项:

[root@pxe1?pxelinux.cfg]#?vim?/var/lib/tftpboot/pxelinux.cfg/default?
#?首先修改菜单等待时间
timeout?600?<--菜单显示等待时间,单位为1/10秒,默认等待60秒.
#修改菜单等待时间为60,即等待6秒,若无操作则进入默认菜单;
timeout?600
#?然后修改显示菜单
#?-----------------------------------------------------------------
#?找到文件中的以下部分
label?linux
? menu?label?^Install?CentOS?Linux?7
? kernel?vmlinuz
? append?initrd=initrd.img?inst.stage2=hd:LABEL=CentOSx207x20x86_64?quiet
label?check
? menu?label?Test?this?^media?&?install?CentOS?Linux?7
? menu?default
? kernel?vmlinuz
? append?initrd=initrd.img?inst.stage2=hd:LABEL=CentOSx207x20x86_64?rd.live.check?quiet
#?将其修改为
label?linux
? menu?label?^Install?CentOS?Linux?7?by?kickstart
? menu?default
? kernel?vmlinuz
? append?initrd=initrd.img?inst.repo=ftp://192.168.56.14/pub?inst.ks=ftp://192.168.56.14/ks.cfg
label?linux?2
? menu?label?^Install?CentOS?Linux?7?by?vnc
? kernel?vmlinuz
? append?initrd=initrd.img?inst.repo=ftp://192.168.56.14/pub?inst.vnc?inst.vncpassword=password
label?linux?3
? menu?label?^Install?CentOS?Linux?7?by?vnc?-listen
? kernel?vmlinuz
? append?initrd=initrd.img?inst.repo=ftp://192.168.56.14/pub?inst.vnc?inst.vncconnect=192.168.56.1
? 
#?本文中其他内容无需进行修改,有兴趣可本身尝试修改其他选项进行测试.

4.4 验证TFTP服务

4.4.1 验证TFTP服务配置

下面来验证TFTP服务配置是否正确:

[root@pxe1?kk]#?ls?/var/lib/tftpboot/
boot.cat? grub.conf? ?isolinux.bin? pxelinux.0? ? splash.png? vesamenu.c32
boot.msg? initrd.img? memtest? ? ? ?pxelinux.cfg? TRANS.TBL? ?vmlinuz
[root@pxe1?kk]#?
[root@pxe1?kk]#?tftp?192.168.56.14
tftp>?get?boot.msg
tftp>?quit
[root@pxe1?kk]#?
[root@pxe1?kk]#?ls
boot.msg
#?成功get到boot.msg文件,阐明TFTP服务正常.

4.4.2 验证菜单及引导文件配置

启动之前准备的客户端虚拟机查看是否可以正常显示引导菜单,是否可以正常获取initrd.img和vmlinuz内核文件.

? 若配置正常,会看到之前配置的引导菜单呈现:

LINUX教程:RHEL7/CentOS7 PXE+Kickstart自动化系统安装

在对应的领导菜单上按TAB键会显示出该菜单项的具体配置:

LINUX教程:RHEL7/CentOS7 PXE+Kickstart自动化系统安装

Enter键后,会呈现获取内核文件的界面:

LINUX教程:RHEL7/CentOS7 PXE+Kickstart自动化系统安装

末了系统提示获取ks文件失败,原因是尚未进行ftp服务器的配置:

LINUX教程:RHEL7/CentOS7 PXE+Kickstart自动化系统安装

更多详情见请继续阅读下一页的出色内容

_baidu_page_break_tag_

5. kickstart文件准备

[root@pxe1?mnt]#?yum?install?-y?system-config-kickstart
#?安装完成后,图形界面执行system-config-kickstart敕令配置ks文件

kickstart文件配置注意事项如下:

LINUX教程:RHEL7/CentOS7 PXE+Kickstart自动化系统安装

下图中光盘挂载地位为FTP根目录下的pub目录,即/var/ftp/pub:

LINUX教程:RHEL7/CentOS7 PXE+Kickstart自动化系统安装

?

LINUX教程:RHEL7/CentOS7 PXE+Kickstart自动化系统安装

LINUX教程:RHEL7/CentOS7 PXE+Kickstart自动化系统安装

?

软件包选择界面,可以直接在这里选择,也可以拷贝服务端/root/anaconda-ks.cfg文件中%packages%end区间的内容至新文件.

LINUX教程:RHEL7/CentOS7 PXE+Kickstart自动化系统安装

?

其他选项请按需选择,配置完成后,保留文件,待FTP服务器配置完成后,需要将其拷贝至FTP根目录/var/ftp.

然后修改生成的ks.cfg文件,在文件末尾(不要删除文件末尾的%end),添加以下内容,表现关闭kdump功能:

%addon?com_RedHat_kdump?--disable?--reserve-mb='auto'
%end

至此,kickstart文件设置装备摆设完成.

6. FTP服务器配置

6.1 安装FTP服务器

[root@pxe1?mnt]#?yum?install?-y?vsftpd
[root@pxe1?mnt]#?systemctl?restart?vsftpd
[root@pxe1?mnt]#?systemctl?enable?vsftpd
Created?symlink?from?/etc/systemd/system/multi-user.target.wants/vsftpd.service?to?/usr/lib/systemd/system/vsftpd.service.
[root@pxe1?mnt]#?systemctl?status?vsftpd
●?vsftpd.service?-?Vsftpd?ftp?daemon
? ?Loaded:?loaded?(/usr/lib/systemd/system/vsftpd.service;?enabled;?vendor?preset:?disabled)
? ?Active:?active?(running)?since?2017-05-25?16:59:12?CST;?11s?ago
?Main?PID:?16466?(vsftpd)
? ?CGroup:?/system.slice/vsftpd.service
? ? ? ? ? ?└─16466?/usr/sbin/vsftpd?/etc/vsftpd/vsftpd.conf
5月?25?16:59:12?pxe1?systemd[1]:?Starting?Vsftpd?ftp?daemon...
5月?25?16:59:12?pxe1?systemd[1]:?Started?Vsftpd?ftp?daemon.
#?安装ftp命令,用于ftp服务器验证.
[root@pxe1?mnt]#?yum?install?-y?ftp

6.2 启动FTP服务器

[root@pxe1?/]#?systemctl?restart?vsftpd
[root@pxe1?/]#?systemctl?enable?vsftpd
[root@pxe1?/]#?systemctl?status?vsftpd
●?vsftpd.service?-?Vsftpd?ftp?daemon
? ?Loaded:?loaded?(/usr/lib/systemd/system/vsftpd.service;?enabled;?vendor?preset:?disabled)
? ?Active:?active?(running)?since?五?2017-05-26?08:28:29?CST;?15s?ago
?Main?PID:?2682?(vsftpd)
? ?CGroup:?/system.slice/vsftpd.service
? ? ? ? ? ?└─2682?/usr/sbin/vsftpd?/etc/vsftpd/vsftpd.conf
5月?26?08:28:28?pxe1?systemd[1]:?Starting?Vsftpd?ftp?daemon...
5月?26?08:28:29?pxe1?systemd[1]:?Started?Vsftpd?ftp?daemon.

6.3 导入ks文件并挂载光盘

首先将适才生成的kickstart文件复制到FTP跟目录下:

[root@pxe1?/]#?cd?/var/ftp/
[root@pxe1?ftp]#?ls
ks.cfg? pub

然后将关盘挂载至/var/ftp/pub目次下:

#?因为配置yum源时已经将光盘挂载至/mntt目录下了,现在有两种办法进行光盘挂载:
#?1.将/mnt目录绑定到/var/ftp/pub目录下
[root@pxe1?~]#?mount?--bind?/mnt/?/var/ftp/pub/
[root@pxe1?~]#?ls?/var/ftp/pub/
CentOS_BuildTag? EULA? images? ? LiveOS? ? repodata? ? ? ? ? ? ? RPM-GPG-KEY-CentOS-Testing-7
EFI? ? ? ? ? ? ? GPL? ?isolinux? Packages? RPM-GPG-KEY-CentOS-7? TRANS.TBL
#?2.?先将光盘从/mnt目录卸载,然后挂载到/var/ftp/pub目录下
[root@pxe1?~]#?umount?/dev/cdrom
[root@pxe1?~]#?mount?/dev/cdrom?/var/ftp/pub/

6.4 验证FTP服务器

本次配置在生成kickstart文件时,登陆用户为匿名用户anonumous,下面测试匿名用户能否正常从FTP服务器下载文件:

[root@pxe1?kk]#?ls?/var/ftp/
ks.cfg? pub
[root@pxe1?kk]#?ftp?192.168.56.14
Connected?to?192.168.56.14?(192.168.56.14).
220?(vsFTPd?3.0.2)
Name?(192.168.56.14: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,56,14,217,98).
150?Here?comes?the?directory?listing.
-rw-r--r--? ? 1?0? ? ? ? 0? ? ? ? ? ? 1459?May?25?09:36?ks.cfg
drwxr-xr-x? ? 8?0? ? ? ? 0? ? ? ? ? ? 2048?Dec?05?13:20?pub
226?Directory?send?OK.
ftp>?get?ks.cfg
local:?ks.cfg?remote:?ks.cfg
227?Entering?Passive?Mode?(192,152,101).
150?Opening?BINARY?mode?data?connection?for?ks.cfg?(1459?bytes).
226?Transfer?complete.
1459?bytes?received?in?0.0433?secs?(33.68?Kbytes/sec)
ftp>?bye
221?Goodbye.
[root@pxe1?kk]#?ls
ks.cfg

成功get到ks.cfg文件,表现配置正常,现在可以重启客户端虚拟机测试是否可以进行自动化系统安装.

7. 自动化系统安装测试

重启客户端虚拟机,可以看到系统开端自动安装,至此,pxe+kickstart自动系统安装配置完成.

?

LINUX教程:RHEL7/CentOS7 PXE+Kickstart自动化系统安装

LINUX教程:RHEL7/CentOS7 PXE+Kickstart自动化系统安装

?

8. 领导菜单介绍

本文中配置的领导菜单default主要内容如下:

label?linux
? menu?label?^Install?CentOS?Linux?7?by?kickstart
? menu?default
? kernel?vmlinuz
? append?initrd=initrd.img?inst.repo=ftp://192.168.56.14/pub?inst.ks=ftp://192.168.56.14/ks.cfg
label?linux?2
? menu?label?^Install?CentOS?Linux?7?by?vnc
? kernel?vmlinuz
? append?initrd=initrd.img?inst.repo=ftp://192.168.56.14/pub?inst.vnc?inst.vncpassword=password
label?linux?3
? menu?label?^Install?CentOS?Linux?7?by?vnc?-listen
? kernel?vmlinuz
? append?initrd=initrd.img?inst.repo=ftp://192.168.56.14/pub?inst.vnc?inst.vncconnect=192.168.56.1

在系统启动进程中,菜单依次对应如下内容:

LINUX教程:RHEL7/CentOS7 PXE+Kickstart自动化系统安装

8.1 kickstart菜单先容

菜单一先容:

label?linux
? menu?label?^Install?CentOS?Linux?7?by?kickstart
? menu?default
? kernel?vmlinuz
? append?initrd=initrd.img?inst.repo=ftp://192.168.56.14/pub?inst.ks=ftp://192.168.56.14/ks.cfg
#?使用kickstart自动安装
#?这项菜单表现镜像文件在FTP根目录/var/ftp/pub下,kickstart文件在FTP根目录/var/ftp下.

菜单二介绍:

label?linux?2
? menu?label?^Install?CentOS?Linux?7?by?vnc
? kernel?vmlinuz
? append?initrd=initrd.img?inst.repo=ftp://192.168.56.14/pub?inst.vnc?inst.vncpassword=password
? 
#?使用vnc手动安装
#?该菜单表示镜像文件在FTP根目录/var/ftp/pub下,vnc暗码为password,选中该菜单后,系统启动后会提示vnc登录的IP及端口,vnc连接后,便可进行手动系统安装,也可以在菜单最后指定kickstart文件位置,自动安装.

如图:

LINUX教程:RHEL7/CentOS7 PXE+Kickstart自动化系统安装

菜单三先容:

label?linux?3
? menu?label?^Install?CentOS?Linux?7?by?vnc?-listen
? kernel?vmlinuz
? append?initrd=initrd.img?inst.repo=ftp://192.168.56.14/pub?inst.vnc?inst.vncconnect=192.168.56.1
? 
#?该菜单项表示使用vnc监听模式进行系统安装
#?该菜单表示镜像文件在FTP根目录/var/ftp/pub下,vnc监听进程在计算机192.168.56.1上,无登录暗码;
#?注意:inst.vncconnect=192.168.56.1?指的是将要运行vnc客户端的计算机IP地址.

这里的192.168.56.1为我的笔记本IP,所以在启动客户端虚拟机后,只需要在笔记本上打开vnc客户端监听模式,即可自动显示安装界面.

LINUX教程:RHEL7/CentOS7 PXE+Kickstart自动化系统安装

在笔记本上打开vnc监听模式后,稍作期待,会自动连接到系统安装界面:

LINUX教程:RHEL7/CentOS7 PXE+Kickstart自动化系统安装

LINUX教程:RHEL7/CentOS7 PXE+Kickstart自动化系统安装

9. 引导菜单的其他创建办法

9.1 menu.c32菜单模块

  • vesamenu.c32 -菜单模块之一

    本文上面介绍的引导菜单便是利用vesamenu.c32生成的.

  • menu.c32 - 菜单模块??一

安装了syslinux命令包后,两种菜单模块都会在目录/usr/share/syslinux/下生成,使用menu.c32创建引导菜单时,只必要将菜单模块menu.c32及内核文件、引导文件拷贝至TFTP根目录下/var/lib/tftpboot即可.

[root@pxe1?tftpboot]#?ls?/var/lib/tftpboot/
initrd.img? menu.c32? pxelinux.0? pxelinux.cfg? vmlinuz

菜单文件内容为:

[root@pxe1?tftpboot]#?cat?/var/lib/tftpboot/pxelinux.cfg/default
default?menu.c32
?timeout?60
?menu?title?CentOS?7?Pxe?Menu
?
label?linux
? menu?label?^Install?CentOS?Linux?7?by?kickstart
? menu?default
? kernel?vmlinuz
? append?initrd=initrd.img?inst.repo=ftp://192.168.56.14/pub?inst.ks=ftp://192.168.56.14/ks.cfg
label?linux?2
? menu?label?^Install?CentOS?Linux?7?by?vnc
? kernel?vmlinuz
? append?initrd=initrd.img?inst.repo=ftp://192.168.56.14/pub?inst.vnc?inst.vncpassword=password
label?linux?3
? menu?label?^Install?CentOS?Linux?7?by?vnc?-listen
? kernel?vmlinuz
? append?initrd=initrd.img?inst.repo=ftp://192.168.56.14/pub?inst.vnc?inst.vncconnect=192.168.56.1

菜单显示样式为:

LINUX教程:RHEL7/CentOS7 PXE+Kickstart自动化系统安装

本文永远更新链接地址

更多LINUX教程,尽在编程之家PHP学院专栏。欢迎交流《LINUX教程:RHEL7/CentOS7 PXE+Kickstart自动化系统安装》!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读