前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >搞它!!!2020年了,你还不会PXE+kickstart 一键式部署安装系统么

搞它!!!2020年了,你还不会PXE+kickstart 一键式部署安装系统么

作者头像
不吃小白菜
发布2020-09-03 10:08:18
4.2K0
发布2020-09-03 10:08:18
举报

前言

PXE是作为Intel的有线管理体系的一部分,Intel 和 Systemsoft于1999年9月20日公布其规格(版本2.1)。通过使用像网际协议(IP)、用户数据报协议(UDP)、动态主机设定协定(DHCP)、小型文件传输协议(TFTP)等几种网络协议和全局唯一标识符(GUID)、通用网络驱动接口(UNDI)、通用唯一识别码(UUID)的概念并通过对客户机(通过PXE自检的电脑)固件扩展预设的API来实现目的。 PXE 客户机(client)这个术语是指机器在PXE启动过程中的角色。一个PXE 客户机(client)可以是一台服务器、桌面级电脑、笔记本电脑或者其他装有PXE启动代码的机器。

一、部署PXE远程安装服务

1、启动步骤详解

1、服务器加电启动,从DHCP服务器获取IP地址并加载(PXEClient)。 2、通过TFTP服务器获取网络引导程序(pxelinux.0)。 3、引导程序读取配置文件(pxelinux.cfg本例中文件名为:default)。 4、引导程序加载文件系统初始化(initrd)程序和内核初始镜像(vmlinuz)、自动应答程序(ks.cfg)。 5、按自动应答文件中指定的网络安装方式,以FTP方式安装linux系统。

2、使用工具

A、tftp-server B、vsftpd C、syslinux D、dhcpd

3、 PXE安装过程

wKiom1SX4kHh1RWYAAHds9-3LXA997.jpg 第一步:PXE client向DHCPserver发送请求 首先,开机启动PXE安装,此时PXE client会通过 PXE Boot ROM(自动芯片)以UDP(简单用户数据协议)的形式在网络中发送一个广播请求,请求DHCP服务器分配IP地址等相关信息。 第二步:DHCP服务器应答PXE client DHCP验证是否是合法的PXE client的请求,验证通过后,回应PXE client,回应中包含了为PXE client分配的ip之地址、TFTP(pxelinux启动程序)的位置,以及配置文件所在的位置。 第三步:PXE client请求下载启动文件 客户端收到DHCP的回应后,向TFTP服务器请求传送启动系统安装所需要的文件,这些文件包括:pxelinux0、pxelinux.cnf/default(内核文件)、vmlinuz、initrd.img等文件 第四步:TFTP服务器响应客户端请求并传送文件 当 TFTP收到客户端的请求之后,发给客户端所需要的启动文件,BootROM由TFTP通讯协议从BootServer下载启动安装程序所必须的文件 (pxelinux0、pxelinux.cnf/default),default文件下载完之后会根据该文件定义的引导顺序,启动linux安装程序 的引导内核。 第五步:请求下载自动应答文件(ftp服务器) PXE client通 过default文件成功的引导linux安装内核后,安装程序首先确定你通过什么安装介质来安装linux,如果是通过网络安装(NFS、HTTP、 FTP),则会在这个时候初始化网络,并定位安装系统所需的二进制包以及配置文件的位置,接着会读取该文件中指定的自动应答文件ks.cfg,然后根据 ks.cfg中的文件位置请求下载相关文件。 第六步:根据ks.cfg文件内容进行安装系统 将ks.cfg文件下载回来后,通过该文件找到OS Server,并按照该文件的配置请求下载安装过程需要的软件包

二、部署PXE远程安装服务

第一步在服务器设置双网卡

目的为了虚拟机能上网 能下载软件

代码语言:javascript
复制
'第一步,在服务器设置双网卡'
在centos 7添加一个网络适配器,并设置为仅主机模式。		'用来装机,做服务器的网卡'
原本的网络适配器保持NAT模式不变。		'用来安装yum包'

第二步,设置添加的网卡IP地址,关闭防火墙

代码语言:javascript
复制
'第二步,设置添加的网卡IP地址,关闭防火墙'
[root@localhost ~]# cd /etc/sysconfig/network-scripts
[root@localhost network-scripts]# cp -p ifcfg-ens33 ifcfg-ens36
[root@localhost network-scripts]# ls
[root@localhost network-scripts]# vim ifcfg-ens36
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens36"
UUID="fe60a0ac-7d04-46a3-b29c-633a50b88f33"		'UUDI删除掉'
DEVICE="ens36"
ONBOOT="yes"
IPADDR=192.168.100.100
NETMASK=255.255.255.0
GATEWAY=192.168.100.1

[root@localhost network-scripts]# systemctl restart network
[root@localhost network-scripts]# ifconfig		'发现设置成功'
[root@localhost network-scripts]# systemctl stop firewalld.service 
[root@localhost network-scripts]# setenforce 0

第三步,设置DHCP服务

代码语言:javascript
复制
'第三步,设置DHCP服务'
[root@localhost ~]#yum install dhcp* -y
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
[root@localhost ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp: overwrite ‘/etc/dhcp/dhcpd.conf’? y
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf

 subnet 192.168.100.0 netmask 255.255.255.0 {
          range 192.168.100.20 192.168.100.30;
          option routers 192.168.100.100;
          option domain-name-servers 6.6.6.6;
          next-server 192.168.100.100;		'指定TFTP服务器地址'
          filename "pxelinux.0";		'filename:指定要下载的引导程序文件'
  }

第四步:设置TFTP–配置安装tftp-server

代码语言:javascript
复制
'第四步:设置TFTP--配置安装tftp-server'
[root@localhost ~]# yum install tftp-server -y
[root@localhost ~]# rpm -ql tftp-server
/etc/xinetd.d/tftp		'配置文件'
/usr/lib/systemd/system/tftp.service
/usr/lib/systemd/system/tftp.socket
/usr/sbin/in.tftpd
/usr/share/doc/tftp-server-5.2
/usr/share/doc/tftp-server-5.2/CHANGES
/usr/share/doc/tftp-server-5.2/README
/usr/share/doc/tftp-server-5.2/README.security
/usr/share/man/man8/in.tftpd.8.gz
/usr/share/man/man8/tftpd.8.gz
/var/lib/tftpboot	'站点'
[root@localhost network-scripts]# vim /etc/xinetd.d/tftp	'编辑配置文件'

        disable                 = no		'将此改成no'

[root@localhost network-scripts]# cd /var/lib/tftpboot	'进入站点'
[root@localhost tftpboot]# ls
##  第五步:安装并设置syslinux

第五步:安装并设置syslinux

代码语言:javascript
复制
'第五步:安装并设置syslinux'
[root@localhost tftpboot]# yum install syslinux -y	'安装syslinux'
[root@localhost tftpboot]# rpm -ql syslinux | grep pxelinux.0
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/pxelinux.0
[root@localhost tftpboot]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot		'将syslinux中的pxelinux.0复制过来'
[root@localhost tftpboot]# ls
pxelinux.0
[root@localhost tftpboot]# yum install vsftpd -y
[root@localhost tftpboot]# rpm -ql vsftpd		'查看站点'
    ...省略内容
/var/ftp
/var/ftp/pub
[root@localhost tftpboot]# mkdir /var/ftp/centos7	'创建centos7目录用来挂载'
[root@localhost tftpboot]# cd /var/ftp
[root@localhost ftp]# ls
centos7  pub
[root@localhost ftp]# ls centos7	'发现镜像文件中没有东西'
'挂载之前先点击已连接'
[root@localhost ftp]# mount /dev/sr0 /var/ftp/centos7/	'挂载'
mount: /dev/sr0 is write-protected, mounting read-only
[root@localhost ftp]# df -hT
[root@localhost ftp]# ls centos7	'再次查看centos7文件,发现有了内容'
CentOS_BuildTag  EULA  images    LiveOS    repodata              RPM-GPG-KEY-CentOS-Testing-7
EFI              GPL   isolinux  Packages  RPM-GPG-KEY-CentOS-7  TRANS.TBL

第六步,在镜像中复制出文件

代码语言:javascript
复制
'第六步,在镜像中复制出文件'
[root@localhost ftp]# cd centos7/images
[root@localhost images]# cd pxeboot
[root@localhost pxeboot]# ls		'发现目标文件,准备复制'
initrd.img  TRANS.TBL  vmlinuz
[root@localhost pxeboot]# cp vmlinuz initrd.img /var/lib/tftpboot/	'将文件复制到tftp站点中'
[root@localhost pxeboot]# ls /var/lib/tftpboot
initrd.img  pxelinux.0  vmlinuz

第七步,设置默认配置文件

‘第七步,设置默认配置文件’ [root@localhost pxeboot]# cd /var/lib/tftpboot [root@localhost tftpboot]# ls initrd.img pxelinux.0 vmlinuz [root@localhost tftpboot]# mkdir pxelinux.cfg ‘创建pxelinux配置文件’ [root@localhost tftpboot]# cd pxelinux.cfg/ [root@localhost pxelinux.cfg]# vim default ‘创建默认配置文件’ ‘输入以下内容’ default auto prompt 1

label auto kernel vmlinuz append initrd=initrd.img method=ftp://192.168.100.100/centos7

label linux text kernel vmlinuz append text initrd=initrd.img method=ftp://192.168.100.100/centos7

label linux rescue kernel vmlinuz append rescue initrd=initrd.img method=ftp://192.168.100.100/centos7

[root@localhost pxelinux.cfg]#systemctl start dhcpd [root@localhost pxelinux.cfg]#systemctl start tftp [root@localhost pxelinux.cfg]#systemctl start vsftpd

第八步 开启裸金属虚拟机

在这里插入图片描述
在这里插入图片描述

三、实现Kickstart无人值守安装

1、准备安装应答文件

kickstart无人值守技术 创建应答文件,预先定义好各种安装设置 免去交互设置过程,从而实现全自动化安装 通过添加%post脚本,完成安装后的各种配置操作 应答文件的内容

2、实现批量自动装机

代码语言:javascript
复制
[root@localhost ~]# yum install system-config-kickstart -y
'安装kickstart工具'

3、开启kickstart软件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
[root@localhost ~]# cd /var/ftp
[root@localhost ftp]# ls
centos7  ks.cfg  pub
[root@localhost ftp]# cd
[root@localhost ~]# ls
anaconda-ks.cfg  initial-setup-ks.cfg  下载  公共  图片  文档  桌面  模板  视频  音乐
[root@localhost ~]# vim anaconda-ks.cfg 
    ...'复制以下内容'
%packages
@^graphical-server-environment
@base
@core
@desktop-debugging
@dial-up
@fonts
@gnome-desktop
@guest-agents
@guest-desktop-agents
@hardware-monitoring
@input-methods
@internet-browser
@multimedia
@print-client
@x11
chrony
kexec-tools

%end
[root@localhost ~]# vim /var/ftp/ks.cfg 	'复制的粘贴到此'

[root@localhost ~]# cd /var/lib/tftpboot/
[root@localhost tftpboot]# ls
initrd.img  pxelinux.0  pxelinux.cfg  vmlinuz
[root@localhost tftpboot]# cd pxelinux.cfg/
[root@localhost pxelinux.cfg]# ls
default
[root@localhost pxelinux.cfg]# vim default
..
label auto
        kernel vmlinuz
        append initrd=initrd.img method=ftp://192.168.100.100/centos7 ks=ftp://192.168.100.100/ks.cf
g '在原本此段内容后面输入ks=ftp://192.168.100.100/ks.cf
g'

[root@localhost pxelinux.cfg]# systemctl restart dhcpd	'重启服务'
[root@localhost pxelinux.cfg]# systemctl restart tftp
[root@localhost pxelinux.cfg]# systemctl restart vsftpd
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-07-15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一、部署PXE远程安装服务
    • 1、启动步骤详解
      • 2、使用工具
        • 3、 PXE安装过程
        • 二、部署PXE远程安装服务
          • 第一步在服务器设置双网卡
            • 第二步,设置添加的网卡IP地址,关闭防火墙
              • 第三步,设置DHCP服务
                • 第四步:设置TFTP–配置安装tftp-server
                  • 第五步:安装并设置syslinux
                    • 第六步,在镜像中复制出文件
                      • 第七步,设置默认配置文件
                        • 第八步 开启裸金属虚拟机
                        • 三、实现Kickstart无人值守安装
                          • 1、准备安装应答文件
                            • 2、实现批量自动装机
                              • 3、开启kickstart软件
                              领券
                              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档