CentOS 7系统部署PXE远程安装服务及Kickstart无人值守安装

前言:

相信很多人都有过装系统的经历,以前是用光盘,现在基本都是用U盘来装系统。我们只需要制作一个U盘驱动即可,安装起来方便快捷。但如果是企业需要同时安装大量的系统时,U盘很显然不适合,它会耗费大量的时间。这时我们就可以用到PXE远程安装服务了,它可以提供大量的客户机同时安装系统。但是,同时安装的客户机数量是受到带宽的限制的。而且在安装系统时,还需要手动进行部分设置。这时我们就会用到Kickstart无人值守安装。

简介:

PXE:预启动执行环境(Preboot eXecution Environment,PXE)也被称为预执行环境,提供了一种使用网络接口(Network Interface)启动计算机的机制。这种机制让计算机的启动可以不依赖本地数据存储设备(如硬盘)或本地已安装的操作系统。 工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。严格来说,PXE 并不是一种安装方式,而是一种引导方式。进行 PXE 安装的必要条件是在要安装的计算机中必须包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client。PXE 协议可以使计算机通过网络启动。此协议分为 Client端和 Server 端,而PXE Client则在网卡的 ROM 中。当计算机引导时,BIOS 把 PXE Client 调入内存中执行,然后由 PXE Client 将放置在远端的文件通过网络下载到本地运行。运行 PXE 协议需要设置 DHCP 服务器和 TFTP 服务器。DHCP 服务器会给 PXE Client(将要安装系统的主机)分配一个 IP 地址,由于是给 PXE Client 分配 IP 地址,所以在配置 DHCP 服务器时需要增加相应的 PXE 设置。此外,在 PXE Client 的 ROM 中,已经存在了 TFTP Client,那么它就可以通过 TFTP 协议到 TFTP Server 上下载所需的文件了。


Kickstart:是一种无人值守的安装方式。它的工作原理是在安装过程中记录典型的需要人工干预填写的各种参数,并生成一个名为ks.cfg的文件。如果在安装过程中(不只局限于生成Kickstart安装文件的机器)出现要填写参数的情况,安装程序首先会去查找Kickstart生成的文件,如果找到合适的参数,就采用所找到的参数;如果没有找到合适的参数,便需要安装者手工干预了。所以,如果Kickstart文件涵盖了安装过程中可能出现的所有需要填写的参数,那么安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后就去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中的设置重启系统,并结束安装。

PXE的工作过程:

1. PXE Client 从自己的PXE网卡启动,向本网络中的DHCP服务器索取IP;

2. DHCP 服务器会分配给客户机的IP,同时告知PXE文件的放置位置(该文件一般是放在一台TFTP服务器上) ;

3. PXE Client 向本网络中的TFTP服务器索取pxelinux.0 文件;

4. PXE Client 取得pxelinux.0 文件后之执行该文件;

5. 根据pxelinux.0 的执行结果,通过TFTP服务器加载内核和文件系统 ;

6. 进入安装画面, 此时可以通过选择HTTP、FTP、NFS 方式之一进行安装(我用的是FTP)。

实验环境:

用VMware14 虚拟机来进行本次实验:

1.首先为了方便实验,需要一台CentOS7同时部署DHCP、TFTP、FTP服务来作为PXE服务端。服务端需要配置双网卡,一块为NAT模式,用来联网安装所需程序,一块为仅主机模式,配置一个固定IP用来与局域网互通。
2.新建一台虚拟机用来作为PXE客户端,用来进行远程安装,安装的系统也为CentOS7。

实验操作:

1.给客户端添加一块网卡,并将网络模式改为仅主机模式。

2.进入“/network-scripts/”目录下,复制一份“ifcfg-ens33”配置文件,命名为“ifcfg-ens36”。“-p”为保留原有权限。

输入:cd /etc/sysconfig/network-scripts/
输入:cp -p ifcfg-ens33 ifcfg-ens36

3.用vim编辑器对配置文件“ifcfg-ens36”进行编辑,将“dhcp”改为“static”,“ens33”改为“ens36”,删除“UUID”,同时添加IP地址、子网掩码、网关。

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=ens33
UUID=7bdb3fdc-0c3b-4a92-918d-3815b0816b02
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.100.100
NETMASK=255.255.255.0
GATEWAY=192.168.100.1

4.重启网络服务,再查看一下网络配置。“ens36”网卡的固定IP已经设置成功。

输入:systemctl restart network
输入:ifconfig

5.安装DHCP服务所需软件包。

输入:yum install dhcp -y

6.复制一份DHCP主配置文件的模板,覆盖DHCP的主配置文件。

输入:cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf

7.用vim编辑器对DHCP服务主配置文件进行编辑,添加一个“192.168.100.0”网段的配置文件,地址池可根据具体情况自己决定,主要是下一个TFTP服务器的路径和引导程序的位置。

添加:
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 114.114.114.114;
        next-server 192.168.100.100;
        filename "pxelinux.0";
}

8.安装“syslinux”软件包和“tftp-server”软件包。

输入:yum install syslinux -y
输入:yum install tftp-server -y


9.查看一下“syslinux”和“tftp-server”软件包的配置文件,我将重要的配置文件标了出来。

输入:rpm -ql syslinux |grep pxelinux.0
输入:rpm -ql tftp-server

10.复制一份“pxelinux.0”文件到“/var/lib/tftpboot/”目录下,并查看是否复制成功。

输入:cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
输入:ls /var/lib/tftpboot/

11.用vim编辑器对TFTP服务的配置文件进行编辑,将“disable”后的“yes”改为“no”,开启TFTP服务。

输入:vim /etc/xinetd.d/tftp


12.安装FTP服务所需软件包。

输入:yum install vsftpd -y

13.进入到FTP服务的站点目录下,新建一个centos7目录。

输入:cd /var/ftp/
输入:mkdir centos7

14.将PXE客户端所需要的光盘镜像挂载到刚才创建的centos7目录下,并查看挂载信息(你也可以直接复制过去)。

输入:mount /dev/sr0 /var/ftp/centos7/
输入:df -h

15.进入到“centos7/images/pxeboot/”目录下(可以一步直接进入),将文件“initrd.img”和“vmlinuz”复制到“/var/lib/tftpboot/”目录下。

输入:cd centos7/images/pxeboot/
输入:cp initrd.img vmlinuz /var/lib/tftpboot/

16.查看一下“ /var/lib/tftpboot/”目录,已经有了三个文件了,其中“pxelinux.0”是引导程序文件,“vmlinuz”是压缩内核文件,“initrd.img”是系统初始化文件。现在还差一个默认的启动菜单文件,所以我们直接进入“/var/lib/tftpboot/”目录,创建一个目录“pxelinux.cfg”,然后在目录“pxelinux.cfg”内新建一个文件“default”。

输入:ls /var/lib/tftpboot/
输入:cd /var/lib/tftpboot/
输入:mkdir pxelinux.cfg
输入:cd pxelinux.cfg/
输入:vim default

17.在“default”文件中,输入以下内容。

default auto                                                                                                                 //默认自动模式
prompt 1                                                                                                                      //等待时间1s

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

18.关闭防火墙和增强性安全功能,同时开启DHCP、TFTP、FTP服务。

输入:systemctl stop firewalld.service
输入:setenforce 0
输入:systemctl start dhcpd
输入:systemctl start tftp
输入:systemctl start vsftpd

19.咱们新建一个虚拟机,具体配置如下图,注意网络为仅主机模式。

20.打开新建的虚拟机作为PXE客户机,选择网络驱动。

21.客户机会获取到DHCP服务分配的IP地址,然后启动引导程序,加载默认的启动菜单。此时需要回车才会继续。

22.在回车后,稍作等待就会进入系统安装的设置界面。

23.我们可以看到PXE远程安装服务,在安装过程中任需要人工进行设置,而我们需要的是无人值守安装,那么我们可以配置“kickstart”程序。首先安装一个“system-config-kickstart”软件包。

输入:yum install system-config-kickstart -y

24.我们进入图形化界面(可以用“init 5”命令进入),进入Kickstart的配置面板。

25.基本配置,设置好默认语言和时区,同时设置root用户密码,勾选安装后重启。

26.安装方法,选择FTP,同时输入FTP服务器的路径和存放镜像文件的目录。

27.引导装载程序选项,勾选安装引导装载程序即可。GRUB密码也可以设置,这样系统会更加安全。

28.分区信息,点击添加分别设置“/boot”、“/home”、“swap”、“/”等分区的大小。注意根分区“/”不用设置大小,直接勾选使用磁盘全部未使用空间即可。




29.网络配置,添加一块ens33网卡,网络类型默认的DHCP模式即可。

30.防火墙配置,禁用SELinux。

31.安装后脚本,选择使用解释程序,输入“/bin/bash”即可。

32.保存配置好的文件,将文件“ks.cfg”保存到FTP服务的站点目录”/var/ftp“下。


33.我们先进入root的家目录,用vim编辑器进入“anaconda-ks.cfg”文件,这是“ks.cfg”的模板文件,我们将其中的安装包命令复制,粘贴到“ks.cfg”文件中去。

输入:cd ~
输入:vim anaconda-ks.cfg
输入:cd /var/ftp/
输入:vim ks.cfg




34.我们再进入“/var/lib/tftpboot/pxelinux.cfg/” 目录,用vim编辑器对“default”文件进行编辑,在自动模式的文件后面添加一个kickstart配置文件的路径。

default auto
prompt 1

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

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

35.我们再新建一台虚拟机,配置与之前的相同。

36.启动新建的虚拟机,操作与PXE远程安装一样,不过这次不需要在手动设置了,系统会自动执行我们在“ks.cfg”文件中配置的内容。

原文地址:https://blog.51cto.com/14449541/2438414

时间: 2024-08-03 08:59:24

CentOS 7系统部署PXE远程安装服务及Kickstart无人值守安装的相关文章

部署PXE远程安装服务和Kickstart无人值守安装

部署PXE远程安装服务和Kickstart无人值守安装PXE:网络引导技术,工作在Client/Serrver模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或整个操作系统.若要搭建PXE网络体系,需满足以下几个前提条件:1.客户机的网卡支持PXE协议,且主板支持网络引导2.网络中有一台DHCP服务器以便为客户机自动分配地址.指定引导文件位置3.服务器通过TFTP(简单文件传输协议)提供引导镜像文件的下载Kickstart:使用Kickstart工具配置安装应答文件,自动完成安装

部署PXE远程安装服务实现Kickstart无人值守安装

Kickstart是一种无人值守的安装方式.它的工作原理是在安装过程中记录人工干预填写的各种参数,并生成一个名为ks.cfg的文件.如果在自动安装过程中出现要填写参数的情况,安装程序首先会去查找ks.cfg文件,如果找到合适的参数,就采用所找到的参数:如果没有找到合适的参数,便会弹出对话框让安装者手工填写.所以,如果ks.cfg文件涵盖了安装过程中所有需要填写的参数,那么安装者完全可以只告诉安装程序从何处下载ks.cfg文件,然后就去忙自己的事情.等安装完毕,安装程序会根据ks.cfg中的设置重

PXE网络装机配置和kickstart 无人值守安装

网络装机的优势: 规模化:同时装配多台主机 自动化:装系统.配置各种服务 远程实现:不需要光盘.U盘等各种物理安装工具 什么是PXE? PXE是域启动执行环境,在操作系统之前运行,可用于远程安装,构建无盘工作站. 工作模式: PXE client集成在网卡ROM中,当计算机引导时,BIOS把PXE client 调入内存执行,获取PXE server配置,显示菜单,根据用户选择将远程操作系统下载到本机运行. 搭建PXE需要的服务(搭建PXE的前提条件) 1.DHCP服务,分配IP地址,定位引导程

kickstart无人值守安装

我们一般自己做Linux时安装系统都是单机安装一台,当在实际生产环境当中,面对像新浪,网易,百度,阿里这种大型的网络公司,一般都会有前台服务器安装Linux,显然一台一台安装就不太实际,那么我们今天做的就是一种更加简单的方法---------kickstart无人值守安装 kickstart是通过网络方式进行安装,这种方式需要我们至少配置一台安装服务器. kickstart无人值守安装的方法:FTP+TFTP+DHCP+kickstart+PXE+NFS 做实验需要两台虚拟机进行实验,一台是安装

在Linux上部署PXE远程安装服务

在Linux上部署PXE远程安装服务 实验介绍:在Linux虚拟机环境下,部署PXE远程安装服务,最终实现在另外一台虚拟机中远程安装Linux系统(前提是Linux虚拟机已经部署好yum仓库). 1.安装TFTP(简单文件传输协议),来提供引导镜像文件的下载.TFTP服务由tftp-server软件包提供,默认由xinetd超级服务进行管理. 2.安装完后,要修改xinetd服务的配置文件,主要将"disbabled = yes"改为"disabled = no",

pxe+dhcp+apache+kickstart无人值守安装系统centos

pxe+dhcp+apache+kickstart无人值守安装系统 挂载系统盘. mkdir /mnt/cdrom mount /dev/cdrom /mnt/cdrom 关闭selinux.关闭防火墙 setenforce 0 /etc/init.d/iptables stop 安装apache服务(默认是安装的) yum install apache -y 复制光盘的内容,到网站目录 cp -rf /mnt/cdrom/* /var/www/html/ 安装tftp-server服务 yum

Linux PXE远程安装服务 并实现KIckstart无人值守安装

工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址 实验目标:部署PXE远程安装服务 .并实现KIckstart无人值守安装 server_args = -s /var/lib/tftpboot -c (指定存储路径 -c:允许上传)disable = no (开启tftp)安装dhcp并且复制模板ddns-update-style none; //支持DNS动态更新,一般选择关闭/next

PXE+Kickstart 无人值守安装CentOS

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

PXE+Kickstart无人值守安装系统

PXE+Kickstart无人值守安装系统 一.介绍 二.原理 三.安装部署PXE+kickstart 四.安装TFTP 五.安装DHCP 六.生成kickstart(ks.cfg)文件 七.安装HTTP 八.虚拟机测试自动安装 一.介绍 CentOS的安装方法挺多,最常见的有光盘.Kickstart无人值守安装.U盘安装及ISO硬盘安装等.如果现在让你安装100台服务器,甚至更多台服务器,你会用什么办法安装呢,用光盘?这样要损坏多少张光盘呢,价格也不菲,U盘安装?一台一台接,很累好不好,用ki