利用Kickstart部署无人值守安装源服务器

简介:

一、基本概念

1、什么是PXE

PXE(Pre-bootExecution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicasttrivial 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 上下载所需的文件了.              

2、什么是Kickstart

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

3PXE+Kickstart无人值守安装操作系统完整过程如下

wKioL1U-YZ3T98qHAAE38pG2-4Q530.jpg

第一步:PXEClientDHCP服务器发送请求

首先,将支持PXE的网络接口卡(NIC)的客户端BIOS设置为网络启动,通过PXE BootROM(自启动芯片)会一UDP协议发送一个广播请求,向网络中的DHCP服务器申请一个IP地址信息.

第二步:DHCP服务器提供信息

DHCP服务器收到客户端请求,验证是否来自PXEClient的请求,验证通过后向客户端回响应信息,包括:客户端IP地址,TFTP Serverpxelinux.0文件名.

第三步:PXE客户端请求下载启动文件

客户端请求传送启动所需文件,包括pxelinux.0pxelinux. cfg/defaultvmlinuzinitrd.img等文件.

第四步:BootInstall Server响应客户端请求并传送文件

TFTP服务器收到客户端请求后,彼此间进行通信应答,确定启动参数,BootROMTFTP通信协议从BootServer下载启动安装程序所必需文件(pxelinux.0pxelinux.cfg/default).default文件下载完成后,会根据

该文件中定义的引导顺序,启动Linux安装程序的引导内核.

第五步:请求下载Kickstart配置文件

客户端通过pxelinux.cfg/default文件成功的引导Linux运行是因为制订了Kickstart配置文件信息所以当一vmlinuzinitrd.img组成的系统运行成功后系统确定你通过什么安装介质来安装Linux如果是通过网络安装(NFSFTPHTTP)则会在这个时候初始化网络,并请求下载Kickstart配置文件.刚才PXE不是已经获取过IP地址了吗?为什么现在还需要一次因为现在已经进入了有vmlinuzinitrd.img等文件组成的系统中了,由于PXE的网络配置并不能传递给这个系统,所以才会进行两次获取IP地址过程.

第六步:客户端安装操作系统

ks.cfg文件下载后,通过该文件找到OS Sserver,并按照该文件的配置请求下载安装过程需要的文件,OS Server和客户端建立连接后,将开始传输文件,客户端将开始安装操作系统,安装完成后,将会根据ks.cfg文件设置来重启或关机注意:安装完成后开机一定要将BIOS修改会从硬盘启动,不然的话又会重复的自动安装操作系统.

以上理论部分摘自http://wxj121.blog.51cto.com/7136845/1638343

感谢军爽博主的总结,如有侵权,请联系我,我将于第一时间删除。

二、环境及所需软件

服务器端IP 192.168.1.2

VmwareCentos6.5_x86_x64 

网络模式为 Vmnet 1

需安装的软件

dhcptftp-serverpykickstartsyslinuxsystem-config-kickstart

1
2
3
4
5
6
7
8
[root@Nagios_Server ~] # yum -y install dhcp tftp-server pykickstart syslinux system-config-kickstart
[root@Nagios_Server~] # rpm -qa  dhcp tftp-server pykickstart syslinux system-config-kickstart
tftp-server-0.49-7.el6.x86_64
syslinux-4.04-3.el6.x86_64
dhcp-4.1.1-43.P1.el6.centos.1.x86_64
system-config-kickstart-2.8.6.5-1.el6.noarch
pykickstart-1.74.16-1.el6.noarch
[root@Nagios_Server~] #

挂载本地光盘到/mnt

1
2
3
4
5
6
7
8
9
[root@Nagios_Server~] # mount /dev/cdrom /mnt
mount : blockdevice  /dev/sr0  is write-protected, mounting  read -only
[root@Nagios_Server~] # df -h
Filesystem      Size Used Avail Use% Mounted on
/dev/sda2         30G 4.0G   25G  15% /
tmpfs           495M   80K 495M   1%  /dev/shm
/dev/sda1        190M  28M  153M  16%  /boot
/dev/sr0         4.4G 4.4G     0 100%  /mnt
[root@Nagios_Server~] #

二、相关配置

1、复制安装源到tftpboot

1
2
[root@Nagios_Server~] # cp /mnt/isolinux/* /var/lib/tftpboot/ && cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ && mkdir /var/lib/tftpboot/pxelinux.cfg && cp /var/lib/tftpboot/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
[root@Nagios_Server~] #


2、配置DHCP  

1
2
[root@Nagios_Server~] # \cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
[root@Nagios_Server~] # vim /etc/dhcp/dhcpd.conf

添加以下内容

1
2
3
4
5
6
7
8
9
10
11
subnet 192.168.1.0netmask 255.255.255.0 {
   range 192.168.1.100 192.168.1.200;
#  option domain-name-servers www.test.com;
#  option domain-name "www.test.com";
#  option routers 192.168.1.253;
#  option broadcast-address 10.5.5.31;
   default-lease- time  600;
   max-lease- time  7200;
   filename  "pxelinux.0" ;
   next-server 192.168.1.2;
}

wKiom1U-YG2RGZvLAAMbHyz-sxs734.jpg

3、配置NFS,并启动相关服务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[root@Nagios_Server~] # vim /etc/exports 
[root@Nagios_Server~] # cat /etc/exports 
/mnt   *(rw, sync )
[root@Nagios_Server~] # /etc/init.d/nfs restart
Shutting down NFSdaemon:                                 [FAILED]
Shutting down NFSmountd:                                 [FAILED]
Shutting down NFSquotas:                                 [FAILED]
Shutting down RPCidmapd:                                 [失败]
Starting NFSservices:                                    [  OK  ]
Starting NFSquotas:                                      [  OK  ]
Starting NFSmountd:                                      [  OK  ]
Starting NFSdaemon:                                      [  OK  ]
正在启动 RPC idmapd:                                      [确定]
[root@Nagios_Server~] #
重启dhcp服务
[root@Nagios_Server~] # /etc/init.d/dhcpd restart
Startingdhcpd:                                           [  OK  ]
[root@Nagios_Server~] # /etc/init.d/xinetd restart
Stoppingxinetd:                                          [  OK  ]
Startingxinetd:                                          [  OK  ]
[root@Nagios_Server~] # chkconfig tftp on
[root@Nagios_Server~] # chkconfig xinetd on
[root@Nagios_Server~] #


wKiom1U-YKrDspB_AADQwWWOlyM676.jpg

wKioL1U-YhzwrNC2AAM6A_eUQkc211.jpg

wKioL1U-Yj_zKO52AAGqO_AGk5o207.jpg

wKiom1U-YN_BufhDAAHioZ0h3DY313.jpg

此时已经可以进行交互式安装,根据实际情况选择即可。

四、制作应答文件,实现自动化安装

需要借助X Windows生产应答文件

1
[root@Nagios_Server~] # system-config-kickstart

wKiom1U-Yc3g_9acAAMQvDw2Dp4534.jpg

wKioL1U-YzPiZbwOAAHJZx2ecF0734.jpg

wKiom1U-YdCjMmyZAAH8_8uuzzA850.jpg

wKioL1U-YzzhZ0zsAAKvqpM5A6k409.jpg

wKiom1U-YdnDNrJoAAIbylNyQHA404.jpg

wKiom1U-YduCu_JMAAHPvcGPR6w397.jpg

wKioL1U-Y0HwXFWqAAICBfiDFaA393.jpg

wKioL1U-Y0KxkrH0AAGkfaCC-OY597.jpg

wKiom1U-Yd_w9mNzAALDTMB2Hl0521.jpg

wKioL1U-Y0vAkVGYAAHDixAPwSg967.jpg

wKiom1U-Yeqx436AAAHowlt6i1M132.jpg

wKioL1U-Y1OhYeK0AAHgiPVFZxY276.jpg

wKiom1U-YfDQjIPEAAKCGVfmtUM349.jpg

配置完后要点文件进行保存,我在这保存了/root下了

1
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
[root@Nagios_Server~] # mkdir /pxefile
[root@Nagios_Server~] # cp -a /root/ks.cfg /pxefile/
[root@Nagios_Server~] # vim /etc/exports 
[root@Nagios_Server~] # cat /etc/exports 
/mnt   *(rw, sync )
/pxefile *(rw, sync )
[root@Nagios_Server~] # /etc/init.d/nfs restart
Shutting down NFSdaemon:                                 [  OK  ]
Shutting down NFSmountd:                                 [  OK  ]
Shutting down NFSquotas:                                 [  OK  ]
Shutting down NFSservices:                               [  OK  ]
Shutting down RPCidmapd:                                 [确定]
Starting NFS services:                                     [  OK  ]
Starting NFSquotas:                                      [  OK  ]
Starting NFSmountd:                                      [  OK  ]
Starting NFSdaemon:                                      [  OK  ]
正在启动 RPC idmapd:                                      [确定]
[root@Nagios_Server~] #
修改 default文件
[root@Nagios_Server~] # vim /var/lib/tftpboot/pxelinux.cfg/default 
[root@Nagios_Server~] # tail -5 /var/lib/tftpboot/pxelinux.cfg/default 
label linux
   menu label ^Install
   menu default
   kernel vmlinuz
   append initrd=initrd.img ks=nfs:192.168.1.2: /pxefile/ks .cfg
[root@Nagios_Server~] # /etc/init.d/dhcpd restart
Shutting downdhcpd:                                      [  OK  ]
Startingdhcpd:                                           [  OK  ]
[root@Nagios_Server~] #

客户端启动,无需交互。

wKiom1U-YnKg3mmIAAERBuYyEzs697.jpg

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

需要在ks.cfg末尾添加如下命令来实现需求:

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


本文转自Jacken_yang 51CTO博客,原文链接:http://blog.51cto.com/linuxnote/1639532,如需转载请自行联系原作者

相关文章
|
29天前
|
定位技术
GPS北斗卫星同步时钟(时间同步服务器)建设施工部署方案
GPS北斗卫星同步时钟(时间同步服务器)建设施工部署方案
GPS北斗卫星同步时钟(时间同步服务器)建设施工部署方案
|
1月前
|
存储 边缘计算 监控
【MODBUS】Modbus主站云端服务器和边缘设备部署区别
【MODBUS】Modbus主站云端服务器和边缘设备部署区别
35 0
|
1月前
|
存储 资源调度 应用服务中间件
浅谈本地开发好的 Web 应用部署到 ABAP 应用服务器上的几种方式
浅谈本地开发好的 Web 应用部署到 ABAP 应用服务器上的几种方式
26 0
|
1月前
|
弹性计算 运维 安全
2024年阿里云一键搭建部署幻兽帕鲁服务器解决方案
幻兽帕鲁火了,为了确保畅快体验游戏,构建高效、稳定的游戏服务器至关重要。幸运的是,阿里云为您提供了快速、简便的服务器搭建解决方案,即使您对技术知识了解有限,也能在短短一分钟内轻松完成《幻兽帕鲁》游戏的联机服务器搭建!
1453 4
|
5天前
|
Java 应用服务中间件 Linux
在阿里云服务器上部署Tomcat详细图文详解
本文介绍了在阿里云服务器上安装和配置JDK和Tomcat的步骤。首先,需要注册阿里云账号并进行实名认证,然后购买并设置服务器。接着,通过File Zilla连接服务器,创建Java和Tomcat的安装目录,并将JDK和Tomcat的tar.gz文件上传到服务器,解压并重命名。之后,配置JDK的环境变量,将catalina.sh复制到/etc/init.d/目录下,并修改相关配置。最后,启动Tomcat并配置安全组规则,确保可以通过公网访问。
|
5天前
|
弹性计算 Java Linux
阿里云服务器搭建部署宝塔详细流程
该内容是一个阿里云服务器和域名的配置指南。首先,需注册阿里云账号并进行企业实名认证。接着,选购服务器如2核2G1兆的Linux系统,并购买域名。完成域名备案后,进行域名解析和ICP备案。然后,通过远程连接登录服务器,重置密码,安装宝塔面板。在安全组中开启宝塔面板随机生成的端口。最后,登录宝塔面板安装LNMP环境,配置数据库如MySQL和Redis,部署JDK、Tomcat,上传前端和后端项目以实现上线。
|
6天前
|
弹性计算 JavaScript Java
阿里云服务器搭建部署宝塔详细流程
以下是内容的摘要: 本文主要介绍了在阿里云上创建和配置服务器环境的步骤,包括注册阿里云账号、实名认证、购买和设置服务器、域名的获取与备案、以及使用宝塔面板安装和配置环境。首先,用户需要注册阿里云账号并进行实名认证,选择合适的服务器配置。接着,购买服务器后,要准备并备案域名,以便通过友好的网址访问网站。在服务器上安装宝塔面板,可以方便地管理和配置LAMP/LNMP/Tomcat/Node.js等应用环境。完成这些步骤后,用户还需要在宝塔面板中安装MySQL、Redis等数据库,部署Java或Vue项目,并配置相关端口。最后,将前端项目打包上传至服务器,并设置站点,即可实现网站的上线。
|
6天前
|
应用服务中间件 Linux 开发工具
如何在阿里云服务器快速搭建部署Nginx环境
以下是内容的摘要: 本文档主要介绍了在阿里云上购买和配置服务器的步骤,包括注册阿里云账号、实名认证、选择和购买云服务器、配置安全组、使用Xshell和Xftp进行远程连接和文件传输,以及安装和配置Nginx服务器的过程。在完成这些步骤后,你将能够在服务器上部署和运行自己的网站或应用。
|
7天前
|
NoSQL 关系型数据库 MySQL
阿里云服务器部署项目流程
本文主要讲解阿里云服务器的部署,如何选择配置等
|
11天前
|
Java 应用服务中间件 Linux
阿里云服务器部署多个tomcat
阿里云服务器部署多个tomcat