VMware实现PXE+kickstart无人值守安装Centos7系统的详细过程

目录
  • PXE实现无人值批量部署服务器
    • 1.1 什么是PXE
    • 1.2 什么是KickStart
    • 1. 3 安装的必要条件
  • 二、PXE工作原理
    • 2.1 工作原理
    • 2.2 本次实验环境
    • 2.3 执行PXE+KiskStart安装需要准备内容
  • 三、安装步骤
    • 3.1 配置YUM源
    • 3.2 关闭防火墙、selinux
    • 3.3 安装DHCP 、tftp(tftp-server、xinetd)
      • 3.3.1 安装dhcp、tftp-server、xinetd
      • 3.3.2 配置DHCP服务
      • 3.3.3 配置tftp服务
      • 3.3.4 安装syslinux,拷贝pxelinux.0文件
    • 3.4 编写kickstart.cfg配置文件
      • 3.4.1安装system-config-kickstart
      • 3.4.2 system-config-kickstart 界面配置
    • 3.5 配置 HTTP镜像源
      • 3.5.1 安装http
      • 3.5.2 将iso 镜像文件挂在设置开机自启动
    • 3.6 配置开机菜单 default
      • 3.6.2 配置开机菜单
      • 3.6.3 将客户机 设置网络启动(raid等),开机启动即可
  • 四、总结

PXE实现无人值批量部署服务器

一、PXE概述

1.1 什么是PXE

PEX (Pre-Boot Execution E nvironment 预启动执行环境),是一种引导方式,并不是一种安装方式。基于 Client/Server的工作模式PXE在网卡的ROM 中,当计算机引导时,BIOS把PXE Client调入内存执行,PXE Client 将放置在远端的文件通过网络下载到本地运行。

1.2 什么是KickStart

KickStart 是一种无人值守的安装方式,KickStart 的工作原理是通过 记录典型的安装过程中记录所需要填写的各种参数(语言、时区、密码、分区、键盘等),并生成一个ks.cfg的文件。(名字可以修改,默认ks.cfg)

在其后的安装过程中,当出现要求填写参数的情况时,安装程序会首先去查找KickStart 生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数,就会卡着,需要人工干预。

如果KickStart 文件涵盖安装过程中所有需要填写的参数时,只需要告诉安装程序从何处取得 ks.cfg文件。安装完毕后,安装程序会根据ks.cfg中设置的重启选项重启系统,并结束安装。

1. 3 安装的必要条件

BIOS 支持PXE,需要在BIOS开启

NIC 网卡支持

二、PXE工作原理

2.1 工作原理

拓扑图

PXE工作原理

1.首先 PXE Client 向 DHCP 服务器发起请求分配IP(网卡需要向DHCP请求地址,获取信息)

2. DHCP 除了给你分配地址外,还会给你分配 boot-loader name(引导程序的名字) 以及Tftp 服务器IP地址

3.网卡使用Tftp 的客户端,向tftp服务器发起请求,把引导程序(pxelinux.0)加载到内存中来

4.然后 BIOS会执行这个引导程序。

5.引导程序会 boot-loader会从tftp去查找它的配置文件(default)

6.根据配置文件来引导

2.2 本次实验环境

实验环

主机名 网络模式 IP地址
Server 仅主机
vmware 需要关闭DHP
10.0.0.100
Client 仅主机 DHCP分配

2.3 执行PXE+KiskStart安装需要准备内容

  • DHCP 服务器 用来给客户机分配IP
  • TFTP 服务器 用来存放PXE 的相关文件:系统引导文件
  • FTP|NFS|HTTP服务器 用来存放系统安装文件
  • KickStart所生成的ks.cfg配置文件
  • 带有一个 PXE支持网卡的 将安装的 主机

三、安装步骤

3.1 配置YUM源

YUM 源配置

[root@Server~]# cd /etc/yum.repos.d/
[root@Server/etc/yum.repos.d]# ls
rivers.repo
[root@Server/etc/yum.repos.d]# mv rivers.repo rivers.repo.bak
[root@Server/etc/yum.repos.d]# vim dvd.repo
[development]
name=Centos7.6
baseurl=file:///mnt
enabled=1
gpgcheck=0

[root@Server~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 is write-protected, mounting read-only
[root@Server~]# 

[root@Server~]# yum clean all
Loaded plugins: fastestmirror
Cleaning repos: development
Other repos take up 137 M of disk space (use --verbose for details)
[root@Server~]#

3.2 关闭防火墙、selinux

关闭防火墙、selinux

[root@Server~]# systemctl disable firewalld --now
[root@Server~]#setenforce 0

# selinux 开机才生效,setenforce 0 临时关闭

3.3 安装DHCP 、tftp(tftp-server、xinetd)

3.3.1 安装dhcp、tftp-server、xinetd

安装dhcp、tftp-server

[root@Server~]# yum -y install dhcp tftp-server xinetd
Loaded plugins: fastestmirror
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
……

3.3.2 配置DHCP服务

配置DHCP文件

# 1.进入 dhcp目录
[root@Server~]# cd /etc/dhcp/
[root@Server/etc/dhcp]# ls
dhclient.d             dhcpd6.conf  scripts
dhclient-exit-hooks.d  dhcpd.conf

# 2.查看默认配置文件,是空的,但是/usr/share/doc/dhcp*/目录下有配置模板,我们可以拷贝
[root@Server/etc/dhcp]# cat dhcpd.conf
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.example
#   see dhcpd.conf(5) man page
#
[root@Server/etc/dhcp]# 

# 3.拷贝dhcpd 配置模板文件
[root@Server/etc/dhcp]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp: overwrite ‘/etc/dhcp/dhcpd.conf'? y

# 4. 修改dhcp 文件,(这里可以不用拷贝配置文件,直接复制下面一段。subnet--filename)

# A slightly different configuration for an internal subnet.
subnet 10.0.0.0 netmask 255.255.255.0 {
  range 10.0.0.120 10.0.0.200;
  option domain-name-servers 10.0.0.5, 10.0.0.6;
  option domain-name "example.com";
  option routers 10.0.0.254;
  option broadcast-address 10.0.0.255;
  default-lease-time 600;
  max-lease-time 7200;
  next-server 10.0.0.100;
  filename "pxelinux.0";

}
   subnet 10.0.0.0 netmask 255.255.255.0 #宣告网段
     range 10.0.0.120 10.0.0.200;  #分配地址范围
     option domain-name-servers:  #dns配置,正常公司会有2个DNS我这里随意配的
     option routers 10.0.0.254; # 设置网关的
     option broadcast-address 10.0.0.255; # 设置广播地址
     default-lease-time 600;  # 默认租约时间,它的单位为秒
     max-lease-time 7200;    #最大租约时间,它的单位为秒
     next-server 10.0.0.100;  # tftp-server IP地址
     filename "/pxelinux.0"; # 网络启动程序,(网络引导)

# 5. 启动dhcp 服务器,
[root@Server/etc/dhcp]# systemctl enable dhcpd
Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service.
[root@Server/etc/dhcp]# systemctl start dhcpd
[root@Server/etc/dhcp]#
[root@Server/etc/dhcp]# netstat -lantup|grep :67
udp        0      0 0.0.0.0:67              0.0.0.0:*                           8503/dhcpd
[root@Server/etc/dhcp]#
[root@Server/etc/dhcp]# cd
[root@Server~]#

@补充:如果全局配置了,子配置没配置,那么将读取全局设置
	  如果全局配置了,子的也配置了,那么将以自配置为准。

3.3.3 配置tftp服务

开启tftp服务

# 1.修改tftp配置文件
[root@Server~]# vim /etc/xinetd.d/tftp
将  disable = no 改为 yes

#重启 xinetd
[root@Server~]# systemctl restart xinetd.service
[root@Server~]# netstat -lntup|grep :69
udp        0      0 0.0.0.0:69              0.0.0.0:*                           9071/xinetd
[root@Server~]#

3.3.4 安装syslinux,拷贝pxelinux.0文件

配置tftp-server在哪里

# 1.查找 pxelinux.0文件是那个包提供的
[root@Server~]# yum provides "*/pxelinux.0"
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
syslinux-4.05-15.el7.x86_64 : Simple kernel loader
     ...: which boots from a FAT filesystem
Repo        : development
Matched from:
Filename    : /usr/share/syslinux/pxelinux.0

syslinux-tftpboot-4.05-15.el7.noarch : SYSLINUX
     ...: modules in /var/lib/tftpboot, available for
     ...: network booting
Repo        : development
Matched from:
Filename    : /var/lib/tftpboot/pxelinux.0

# 2.安装syslinux包,然候拷贝pxelinux.0文件到 tftp-server目录
[root@Server~]# yum -y install syslinux

[root@Server~]# rpm -ql syslinux|grep pxe
/usr/share/doc/syslinux-4.05/pxelinux.txt
/usr/share/syslinux/gpxecmd.c32
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/gpxelinuxk.0
/usr/share/syslinux/pxechain.com
/usr/share/syslinux/pxelinux.0
[root@Server~]# 

# 3. 拷贝pxelinux.0 文件到 tftp-server 目录
[root@Server~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@Server/var/lib/tftpboot]# ls
pxelinux.0

# 4.创建一个目录,用来放启动配置文件 default的
[root@Server/var/lib/tftpboot]# mkdir pxelinux.cfg
[root@Server/var/lib/tftpboot]# ls
pxelinux.cfg  pxelinux.0
[root@Server/var/lib/tftpboot]# cd pxelinux.cfg
[root@Server/var/lib/tftpboot/pxe.cfg]# pwd
/var/lib/tftpboot/pxelinux.cfg

# 5.将 /mnt/isolinux/目录下面的所有文件都考到 /var/lib/tftpboot下面
[root@Server/var/lib/tftpboot]# cd --
[root@Server~]# cd /mnt/isolinux/
[root@Server/mnt/isolinux]# cp -a isolinux.cfg  /var/lib/tftpboot/pxelinux.cfg/default
[root@Server/mnt/isolinux]#cp * /var/lib/tftpboot/

验证

1.客户端启动系统,选择从网卡启动
2.就会从DHCP服务器(10.0.0.81)中获取IP地址,同时还获取了 tftp-server IP(10.0.0.81)地址和网络引导程序(pxelinux.0)
3.通过网卡读取到tftp-server(/var/lib/tftpboot目录)上的pxelinux.0,读取到内存中
4.在内存中执行引导程序
5.读取引导程序的配置文件(/var/lib/tftpboot/pxe.cfg/default)

3.4 编写kickstart.cfg配置文件

3.4.1安装system-config-kickstart

安装 system-config-kickstart

[root@Server/etc/yum.repos.d]#  cd --

# 1. 安装system-config-kickstart
[root@Server~]# yum -y install system-config-kickstart
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
……

#2. 启动界面,配置ks.cfg
[root@Server~]# system-config-kickstart
详解界面如下:

3.4.2 system-config-kickstart 界面配置

基本配置(默认语言、键盘、时区、密码、安装后重启)

安装方法(全新安装、HTTP安装方式)

安装新引导装载程序

分区信息

网络配置

防火墙配置

显示配置(是否安装图形界面)

软件包安装选择

安装后脚本

保存

3.5 配置 HTTP镜像源

3.5.1 安装http

安装httpd

# 1. 安装httpd
[root@Server ~]# yum -y install httpd
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
……
# 2.设置开启自动、启动服务
[root@Server ~]# systemctl enable httpd
[root@Server ~]# systemctl start httpd

#3. 创建 目录
[root@Server ~]# cd /var/www/html
[root@Server/var/www/html]# mkdir ks.cfg
[root@Server/var/www/html]# mkdir pub

# 4.修改yum 源,将本地改为http
[root@Server/var/www/html]# cd
[root@Server~]# cat /etc/yum.repos.d/dvd.repo
[development]
name=rhce7
baseurl=http://10.0.0.100/pub
enabled=1
gpgcheck=0
[root@Server~]#

3.5.2 将iso 镜像文件挂在设置开机自启动

设置iso开机自启动

# 1. 在末尾添加以下一条信息。
[root@Server~]# vim /etc/fstab
/dev/cdrom       /var/www/html/pub         iso9660                 defaults,loop 0 0
[root@Server~]# tail -1 /etc/fstab
/dev/cdrom       /var/www/html/pub         iso9660                 defaults,loop 0 0
[root@Server~]# 

# 2.挂载镜像
[root@Server~]# mount -a

# 3.用火狐浏览器访问下,如果可以访问,则说明http 镜像源没有问题
[root@Server~]# firefox http://10.0.0.100/pub &

@ 7版本上,模式可以识别loop,defaults,loop 后面的loop可以省略

3.6 配置开机菜单 default

3.6.1 将ks6.cfg移动到 /var/www/html/ks

移动ks6.cfg

# 1.将我们保存在root目录中的cfg移动到 /var/www/html/ks.cfg/
[root@Server~]# mv ks6.cfg /var/www/html/ks.cfg/
[root@Server/var/www/html/ks.cfg]# ls
ks6.cfg
[root@Server/var/www/html/ks.cfg]#

3.6.2 配置开机菜单

编写defautl文件

[root@Server~]# cd /var/lib/tftpboot/pxelinux.cfg/
[root@Server/var/lib/tftpboot/pxelinux.cfg]# ls
default

# 1.编写default文件,此时在原本的label linux 添加以下内容,
# 并删除label check里面的 menu defalut(默认启动方式,设置了,就不需要选择,默认启动选项)

[root@Server/var/lib/tftpboot/pxelinux.cfg]# vim default 

label rhce7
  menu label ^Install rhce7
  menu default
  kernel vmlinuz
  append initrd=initrd.img ks=http://10.0.0.100/ks.cfg/ks6.cfg

# 2.可以修改下默认的时间,默认是 600(单位是600秒的十分之一,就是60s)
# 这里我设置60,就是6s
timeout 60

-------------------
参数介绍
efault vesamenu.c32    # 这是必须项,或者使用menu.c32

timeout 60             # 超时等待时间,60秒内不操作将自动选择默认的菜单来加载

display boot.msg       # 这是为选项提供一些说明的文件

# Clear the screen when exiting the menu, instead of leaving the menu displayed.
# For vesamenu, this means the graphical background is still displayed without
# the menu itself for as long as the screen remains in graphics mode.
menu clear
menu background splash.png      # 背景图片
menu title CentOS 7             # 大标题
menu vshift 8

……
label linux
  menu label ^Install CentOS 7   # 菜单文字
  kernel vmlinuz        # 内核文件路径,注意相对路径是从tftp的根路径/tftpboot开始的
  append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet
  # 内核启动选项,其中包括initrd的路径,同样要改为"ks=http://10.0.0.100/ks.cfg/ks6.cfg"

  menu default          # menu default表示开机时光标一开始默认停留在此label上
# 一般pxe环境下此路径直接指向系统安装文件的路径,具体做法见下文示例

# utilities submenu          # 子菜单项的设置方法
  menu begin ^Troubleshooting
  menu title Troubleshooting

3.6.3 将客户机 设置网络启动(raid等),开机启动即可

四、总结

所谓的无人值守,就是自动应答,当安装过程中需要人机交互提供某些选项的答案时(如如何分区),自动应答文件可以根据对应项自动提供答案。但是,无人值守并不完全是无人值守,至少设置bios从网卡启动是必须人为设置的,且安装完系统后设置不从网卡启动也是需要人为设置的。除此之外,其他的基本上都可以实现无人值守安装。

在部署时,建议使用 Kickstart+DHCP+HTTP(FTP)+TFTP,安装dhcp、tftp-server、xinetd、httpd、system-config-kickstart等软件。

在真实环境中,通常我们会发现一台服务器好几块硬盘,做完raid,整个硬盘有等10T,如果来使用kickstart自动安装并分区呢;一般服务器硬盘超过2T,如何来使用kickstart安装配置呢?这里就不能使用MBR方式来分区,需要采用GPT格式来引导并分区。需要在ks.cfg末尾添加如下命令来实现需求:

%pre
 parted -s /dev/sdb mklabel gpt
%end

到此这篇关于VMware实现PXE+kickstart无人值守安装Centos7系统的文章就介绍到这了,更多相关VMware无人值守安装Centos7系统内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 在VMWare虚拟机上安装Centos7系统的步骤详解

    安装前工作: 确保已经安装好vmware workstation,准备好centos安装包. 以下演示安装工具及版本: VMware Workstation Pro 15.5.0 CentOS-7-x86_64-DVD-1908 安装步骤: 1.    选择左上角文件,新建虚拟机: 2.    选择自定义,并点击下一步:[从左往右依次读] 3.       一直点击下一步,到完成为止: 4.       编辑虚拟机设置,设置镜像位置:[从左往右依次读]      5.       点击开启此虚拟

  • VMware实现PXE+kickstart无人值守安装Centos7系统的详细过程

    目录 PXE实现无人值批量部署服务器 1.1 什么是PXE 1.2 什么是KickStart 1. 3 安装的必要条件 二.PXE工作原理 2.1 工作原理 2.2 本次实验环境 2.3 执行PXE+KiskStart安装需要准备内容 三.安装步骤 3.1 配置YUM源 3.2 关闭防火墙.selinux 3.3 安装DHCP .tftp(tftp-server.xinetd) 3.3.1 安装dhcp.tftp-server.xinetd 3.3.2 配置DHCP服务 3.3.3 配置tftp

  • 详解CentOS 6.4下PXE+Kickstart无人值守安装操作系统

    一.简介 1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软

  • 云服务器(Linux)安装部署Kafka的详细过程

    目录 云服务器(Linux)安装部署Kafka 前期准备 下载安装包 上载安装包到云服务器 配置kafka 开放云服务器端口 开放linux防火墙端口 启动kafka服务 测试单机连通性 Springboot连接kafak 云服务器(Linux)安装部署Kafka 前期准备 kafka的安装需要依赖于jdk,需要在服务器上提前安装好该环境,这里使用用jdk1.8. 下载安装包 官网地址: 较新的版本已自带Zookeeper,无需额外下载.这里使用3.2.0做演示. 注意要下载Binary dow

  • VMware workstation 14 pro上安装win10系统

    本文介绍了如何在VMware workstation 14 pro上安装系统,供大家参考,具体内容如下 点击创建新的虚拟机 选择稍后安装系统,否则你会陷入无穷的简易安装等待中. 我这次安装的系统为win10 安装地址可以自己选择 接着可以按照推荐的一直点下去 之后点击编辑虚拟机设置 选择自己下载好的win10映像文件启动 之后便可开启虚拟机 一旦进去立即按回车否则就会出现如下画面(但是有办法解决,不要马上关) 这时你就要按Esc才能安装,但是如果你一不小心又忘记点了,又会出现如下画面(还是可以继

  • vmware虚拟机安装deepin20最全详细过程

    虚拟机软件:vmware workstation 镜像:deepin-desktop-community-1002-amd64.iso 提前创建安装目录:D:\linux\deepin-20 1.打开安装好的vmware workstation,点击创建新的虚拟机 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 3

  • XenServer 5.6环境下安装Windows Server 2012详细过程(图文)

    之前一直都是使用vmware和hyper v环境,出于学习的目的,打算尝试下citrix xenserver,首先从安装开始. 环境配置如下:Windows Server 2008 R2和XenServer 5.6服务器各一台,下文以XenServer举例,如何在虚拟机中安装Windows Server 2012.(事实上5.6安装Server2012有点问题,不过暂时不影响体验)听说Xenserver6是可以直接使用SCVMM2012进行管理的,所以作为底层的Hyper-Visor,用什么系统

  • nginx安装以及配置的详细过程记录

    目录 1 nginx 介绍 1 什么是nginx 2 应用场景 2 nginx安装 1 下载 2 安装要求的环境 1.需要安装gcc环境 2.第三方的开发包 3 nginx安装过程 3 启动nginx 4 查看nginx是否启动 5 关闭nginx 6 重启nginx 7 刷新配置文件 8 关闭防火墙,开启远程访问 9 访问nginx 10 配置虚拟主机 11 通过端口区分不同的主机 12 多个域名区分虚拟主机 1 什么是域名 2 nginx配置 3 测试 13 正向代理 14 反向代理 15

  • docker安装部署 onlyoffice的详细过程

    0. 系统要求 中央处理器 I5-10400F以上 内存 16 GB,最佳32G内存 硬盘 至少40 GB的可用空间 1:安装Docker Desktop 2:进入BIOS设置CPU的虚拟化 https://jingyan.baidu.com/article/ab0b56305f2882c15afa7dda.html 3:启动Docker desktop 报错解决:https://www.jb51.net/article/214820.htm 3:cmd进入,使用命令安装onlyoffice 安

  • docker安装RabbitMQ及安装延迟插件的详细过程

    目录 1.首先说一下什么是MQ 1.1为什么要用MQ/MQ有什么用 1.1.1流量消峰 1.1.2应用解耦 1.1.3异步处理 2.安装RabbitMq 2.1首先拉取镜像 2.2启动镜像 2.3启动 rabbitmq_management (RabbitMQ后台管理) 2.3.1打开RabbitMQweb界面 3.插件下载并安装 安装完成后用工具将插件文件上传到服务器上 我这个安装攻略首先得保证服务器上安装过docker了 如果没安装docker请先去安装docker 1.首先说一下什么是MQ

随机推荐