使用 PXE+Kickstart 实现无人值守批量部署系统

一、废话两句

在云数据中心,一次几十台甚至几百台服务器上线,系统安装将变得非常繁琐,系统安装好了后还会涉及很多配置,如果一台台来安装的话工作量非常大。(虽然有加班费,开个玩笑)
为了解决这个问题,我们需要实现无人值守批量部署系统。

简单看一下拓扑图:

1. 什么是PXE?

简单来说:PXE主要是引导作用,具体的详细信息这里就不多说了,详情百度即可。

PXE引导流程:

2. 什么是Kickstart?

简单两句就是:Kickstart是一种无人值守的安装方式。它的工作原理是在安装过程中记录典型的需要人工干预填写的各种参数;
比如:我们安装系统的时候需要分区、设置时区、设置root密码、安装后执行的脚本等等,这些操作都记录下来并生成一个名为ks.cfg的文件。

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

二、环境准备

操作系统:CentOS 7.4 (最小化安装)
实验平台:VMware Workstation 14
网络模式:NAT模式
服务器IP地址:192.168.115.21
防火墙:关闭
SElinux=Disable

三、准备工作

如果当初已经是图形化安装了,则不需要该步骤。
生成ks.cfg 文件需要system-config-kickstart 工具,而此工具依赖于X Windows,所以我们需要安装X Windows 和Desktop 并重启系统,操作如下:

i. 挂载光盘:

[[email protected] ~]# mkdir /mnt/cdrom
[[email protected] ~]# mount /dev/cdrom /mnt/cdrom

ii. 配置本地yum源:

[[email protected] ~]# cat /etc/yum.repos.d/dvd.repo
------------------------------------------------------
[development]
# 名称必须为 “development”,否则到后面kickstart配置会出现软件包选择出现没有软件包信息
name=redhat
baseurl=file:///mnt/cdrom
gpgcheck=0

iii. 安装图形化:

[[email protected] ~]# yum groupinstall "Server with GUI" -y
[[email protected] ~]# systemctl set-default graphical.target  // 设置默认启动到图形界面
[[email protected] ~]# reboot      // 重启机器

四、安装需要服务

1. 配置DHCP

i. 安装DHCP服务

[[email protected] ~]# yum install dhcp -y

ii. 修改/etc/dhcp/dhcpd.conf 配置文件

[[email protected] ~]# vim /etc/dhcp/dhcpd.conf
------------------------- 配置如下 -------------------------------
subnet 192.168.115.0 netmask 255.255.255.0 {    //所在网段
range 192.168.115.100 192.168.115.199;          //分配IP地址范围
option subnet-mask 255.255.255.0;              //给客户端设置子网掩码(netmask)
default-lease-time 21600;           //设置默认的IP租期时间
max-lease-time 43200;               //设置最大的IP租期时间
next-server 192.168.115.21;         //tfp服务端IP地址
filename "/pxelinux.0";             //网络引导程序
}

iii. 启动DHCP服务

[[email protected] ~]# systemctl start dhcpd
[[email protected] ~]# systemctl enable dhcpd

iv. 测试DHCP是否成功

新建一个虚拟机进行测试,如下图可以看出已经成功获取IP地址和其他信息了。

2. 配置TFP

i. 安装TFP、Xinetd

[[email protected] ~]# yum install tftp-server xinetd -y

ii. 修改配置文件

[[email protected] ~]# vim /etc/xinetd.d/tftp
-------------- 省略配置信息,看下图 -------------
将 disable 设置为 no

iii. 启动服务

因为 tftp 服务是挂载在超级进程 xinetd 下的,所以通过启动 xinetd 来启动 tftp 服务。

[[email protected] ~]# systemctl start xinetd
[[email protected] ~]# systemctl enable xinetd

iv. 检查服务是否启动成功

[[email protected] ~]# netstat -ntulp | grep 69
udp       0      0 0.0.0.0:69        0.0.0.0:*        2817/xinetd

3. 安装Syslinux

i. 安装syslinux只是为了要 pxelinux.0 引导加载程序,没有别的用意。

[[email protected] ~]# yum install selinux -y

ii. 复制pxelinux.0 文件至/var/lib/tftpboot/ 文件夹中

[[email protected] ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

iii. 拷贝光盘里的配置文件

[[email protected] ~]# cp /mnt/cdrom/isolinux/* /var/lib/tftpboot/

iv. 验证改步骤是否成功

将新建的测试虚拟机重启,就可以看到该界面了。

4. 配置HTTP

i. 安装HTTP

系统的安装方式可以选择HTTP、FTP、 NFS,我们这里介绍HTTP方式的安装,其他两种方式的安装,大家可以自行百度。

[[email protected] ~]# yum install httpd  -y

ii. 启动HTTP

[[email protected] ~]# systemctl start httpd
[[email protected] ~]# systemctl enable httpd

iii. 复制光盘全部内容至http 的根目录/var/www/html/pub 下

[[email protected] ~]# mkdir /var/www/html/pub
[[email protected] ~]# cp -r /mnt/cdrom/ /var/www/html/pub

iv. 测试改步骤是否成功

5. 配置kickstart

i. 安装kickstart

[[email protected] ~]# yum install system-config-kickstart -y

ii. 在桌面环境下配置Kickstart,生成ks.cfg 文件

[[email protected] ~]# system-config-kickstart

A. 设置语言,键盘,时区,Root密码,安装完毕后重启等。

B. 设置安装方式,这篇文章介绍的是HTTP方式的安装。

C. 安装MBR

D. 设置分区

E. 配置网络

F. 认证配置

G. SELinux 和防火墙配置

H. 图形环境配置

I. 软件包安装选择

注:如果你的软件列表没有信息,解决该问题看后面部分,如下图:

J. 安装后脚本

K. 保存导出配置文件

iii. 复制到HTTP下的ks目录

[[email protected] ~]# mkdir /var/www/html/ks
[[email protected] ~]# cp ks.cfg  /var/www/html/ks/

iv. 验证改步骤

6. 修改default

i. 创建配置文件夹

[[email protected] ~]# cd /var/lib/tftpboot/
[[email protected] tftpboot]# mkdir pxelinux.cfg

ii. 复制配置文件

[[email protected] ~]# cp /var/lib/tftpboot/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
[[email protected] ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
----------------------- 修改配置如下 --------------------------
label linux
  menu label ^Install PXE+Kickstart_RedHat7
  kernel vmlinuz
  append initrd=initrd.img ks=http://192.168.115.21/ks/ks.cfg ksdevice=eth0 net.ifnames=0 biosdevname=0

参数解释:

append initrd=initrd.img ks     // 存放ks配置文件的服务器地址和路径,通过该路径找到对应的ks.cfg文件来引导系统安装
ksdevice=eth0                   // 指定该网卡进行ks的数据交互(可忽略)
net.ifnames=0 biosdevname=0     // 修改内核参数,让网卡命名变为ethXX

iii. 开机验证(需要手动选择安装)

iv. 全自动化安装,无需手动选择安装

[[email protected] ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
--------------------------------------------------------------
default linux            # 在配置文件第一行找到default,加上label的名称即可。
label linux
  menu label ^Install PXE+Kickstart_RedHat7
  kernel vmlinuz
  append initrd=initrd.img ks=http://192.168.115.21/ks/ks.cfg ksdevice=eth0 net.ifnames=0 biosdevname=0

v. 安装好后验证脚本信息

到此就完成了无人值守批量部署系统,收工下班。

五、你可能会出现的问题

1. 配置kickstart时,软件包选择出现没有软件包信息,如下图:

解决办法:

检查yum源配置是否为: [development] ,配置好后,重新打开kickstart配置窗口即可。如图:

2. 配置好后,进行自动化部署的时候出现如下报错信息,如下图:

"/sbin/dmsquash-live-root: line 273: write error: No space left on device"

解决办法:

检查虚拟机或服务器的内存大小,RedHat7.3以上的版本进行Kickstart安装需要分配至少2GB的内存。

原文地址:https://www.cnblogs.com/l-hh/p/11368796.html

时间: 2024-10-31 17:15:04

使用 PXE+Kickstart 实现无人值守批量部署系统的相关文章

DHCP+TFTP+pxe+Kickstart实现无人值守自动装系统

 已经提前配置好YUM 一.需检查iptableis是否关闭 二.安装DHCP服务并修改配置 三.安装tftp并修改其配置 四.配置PXE相关文件 五.使用system-config-kickstart生成自动装机配置文件,我这里是基于http实现的 六.修改/var/lib/tftpboot/pxelinux.cfg/default文件 七.把镜像放到http目录下 八.装机测试 OK DHCP+TFTP+pxe+Kickstart实现无人值守自动装系统

pxe+kickstart实现无人值守批量安装linux

实验准备:主机myrhel2作为服务器端,新建一个没有安装操作系统的虚拟主机,而且其与服务器端在同一个网段 安装的条件: 服务器端: ????支持TFTP:提供引导文件与系统安装所必须的文件 ????支持DHCP服务器:分配IP地址.定位TFTP服务器位置. 客户端: ????网卡支持PXE协议 ????主板支持网络引导 环境准备 关闭iptables selinux # service iptables stop # iptables –F # setenforce 0 开启虚拟机,配置一个不

PXE/Kickstart远程安装及部署

PXE/Kickstart远程安装及部署 介绍 由Intel公司开发的网络引导技术,工作在C/S(客户机/服务器)模式: 前提条件 1.客户机支持PXE协议(集成BOOTROM芯片),且主板支持网络引导: 2.网络中要有一台DHCP服务器为客户机自动分配地址 并 指定引导文件位置: 3.服务器通过TFTP(简单文件传输协议)提供引导镜像文件的下载: RHEL6的网络安装源一般通过HTTP.FTP协议发布,另外也支持NFS(网络文件系统): 本例通过FTP发布 一.搭建yum软件仓库 [[emai

实战:Cobbler 无人值守自动部署系统

背景: 装系统相信大家都不陌生,对于运维攻城狮可以说是家常便饭,老大说:小刘今天装一下系统,明天把那几台机器系统重装一下.就这样一上午,一天就这么过去了.耗时费力不说,重点是没有效率,没错这就是我的痛点.一个好的运维工作时间清闲才说明你的工作做到位了.万一某天说小刘把100个新机器装一下系统...该如何彻底解放双手呢? 今天我们介绍一款无人值守自动化部署系统的软件Cobbler,真正是实现从机器上架,插上网线一切都交给Cobbler来完成 简介: 先介绍下Cobbler(补鞋匠),根据其名称可想

企业批量部署Win7(一)——WDS批量部署系统

背景介绍 企业新采购了一批计算机,需要为每台计算机安装操作系统和常用办公软件.虽然光盘,U盘也可以完成安装,但是数量较大时这种安装方法就不太适用.为此,我们以Windows2008R2为例来介绍WDS批量部署Win7操作系统. 系统安装过程 操作系统之所以能够批量部署,要从系统的安装过程来说明.从vista之后的操作系统安装过程分为:PE引导.正式安装和OOBE三部分,所谓PE引导就是我们在安装操作系统前选择的语言及分区等信息,然后才开始正式安装 我们在Win7安装光盘的sources目录下看到

RH134-01 通过Kickstart完成无人值守自动化部署

第一章 通过Kickstart完成无人值守自动化部署 kickstart给用户提供了一种自动化安装红帽企业Linux的方法,该方法通过定义一个kickstart文件来完成安装过程中的问答从而实现无人值守安装. 1.定义Anaconda Kickstart无人值守安装 安装命令 url--url="http://classroom.example.com/content/rhel7.0/x86_64/dvd/" repo--name="Custom Packages"

linux之PXE+kickstart实现无人值守安装

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

linux__kickstart无人值守批量安装系统

一.    部署前的安装环境: 1.centos6.3的系统环境. 第一台服务器搭建dhcp+tftp.IP为192.168.0.253.第二台服务器搭建nfs服务,并安装kickstart自动应答文件IP为192.168.0.254. 2需要安装dhcp服务(分配客户端IP地址的,以便从网络引导) 3安装tftp(ftp,http)服务(提供下载系统镜像的). 4安装kickstart(用来自动安装系统的). 二     安装: 1挂载光盘,用rpm方式安装. 2用yum安装的方式,保证你的电

pxe+kickstart cobbler无人值守装机

环境准备: 一台服务器 [[email protected] tftpboot]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) [[email protected] tftpboot]# uname -a Linux admin 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux [[email