记一次用PXE+kickstart批量为20台新服务器安装centos7

基于PXE+kickstart批量安装centos7:

本文是纯文字,后续会补充图片

1.环境:

CentOS Linux release 7.4.1708 (Core)
kernel:3.10.0-693.el7.x86_64

2.PXE、kickstart简介

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

3.需要安装的服务,以及应用:

DHCP 用于批量安装时客户端自动获取IP,并提供引导系统所需的其他信息
TFTP 传输小文件非常便捷的根据,因为系统开机启动时引导文件和加载的内核文件都是小文件,所以一般选TFTP
FTP(NFS,HTTP..) 引导完成并成功加载内核后就需要向系统提供安装所需的各种系统软件,大文件传输用FTP、HTTP、NFS更可靠,我这里用的是FTP

应用:
system-config-kickstart.noarch 用于生成自应答文件ks.cfg,我是图形界面下安装后生成ks.cfg文件的,似乎命令行界面也能,后续会尝试
syslinux 安装后会生成系统引导文件/usr/share/syslinux/pxelinux.0

***安装前要关闭防火墙和selinux

4.安装DHCP服务

yum install -y dhcp
配置DHCP
vim /etc/dhcp/dhcpd.conf

我的配置:
subnet 188.188.188.0 netmask 255.255.255.0 {
range 188.188.188.2 188.188.188.50; #作用域
default-lease-time 21600;
max-lease-time 43200;
next-server 188.188.188.119; #TFTP服务器地址
filename "pxelinux.0";
}

启动DHCP服务
systemctl start dhcpd

检查是否启动成功,DHCP默认在67号端口
lsof -i :67
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
dhcpd 14690 dhcpd 7u IPv4 1215873 0t0 UDP *:bootps

安装完成后建议验证是否能正常分配ip,/var/lib/dhcpd/dhcpd.leases有分配ip的记录

5.安装TFTP并启动

yum install -y tftp tftp-server
systemctl start tftp.socket
查看状态:
systemctl status tftp.socket
默认根目录为/var/lib/tftpboot/

若需要TFTP开机自启需安装xinetd服务,这里没有需求,所有可以不安装

TFTP监听在69端口

6.安装并启动ftp服务(以前就配好的一台yum服务器,此步骤省略,只描述修改的部分)

以前的ftp目录是/yum,现在在/yum下创建了两个目录,centos7和kickstarts,/yum/centos7存放源,/yum/kickstarts存放ks.cfg

注意:配置*.repo文件中第一行要写[development],填写其他内容会导致后面system-config-kickstart命令生成自动应答文件kc.cfg时提示软件包被禁用

可以打开浏览器测试ftp服务是否成功安装并启用

有时间可以尝试一下http或者NFS

7.复制或创建启动所需目录和文件至/var/lib/tftpboot/

下面是我的内容:

ls -lh /var/lib/tftpboot/
-rw-r--r-- 1 root root  21K 6月  28 16:10 chain.c32   #
-rw-r--r-- 1 root root  47M 6月  28 16:06 initrd.img
-rw-r--r-- 1 root root  33K 6月  28 16:10 mboot.c32   #
-rw-r--r-- 1 root root  26K 6月  28 16:10 memdisk     #
-rw-r--r-- 1 root root  54K 6月  28 16:10 menu.c32    #
-rw-r--r-- 1 root root  27K 6月  28 16:01 pxelinux.0  #
drwxr-xr-x 2 root root   21 6月  29 09:27 pxelinux.cfg
-rw-r--r-- 1 root root 5.7M 6月  28 16:06 vmlinuz
标记#号的都是从/usr/share/syslinux/下复制的

vmlinuz和initrd.img是PXE专用的内核文件,在系统yum仓的image/pxeboot/下

ls -lh /var/lib/tftpboot/pxelinux.cfg/
-rw-r--r-- 1 root root 232 6月  29 09:27 default

以下目录和文件默认在TFTP的根目录下自行复制或创建,安装TFTP后默认是/var/lib/tftpboot/
pxelinux.cfg此目录需存放一个名为default的文件,用作设置系统引导的配置文件,包括加载的内核,yum仓库源(可以是http,NFS,FTP提供)路径,自动应答配置文件(ks.cfg)路径,
ks.cfg文件可以理解为系统安装的自动应答文件,配置好后可以使安装过程完全不需手动操作,它可以在安装过程中对磁盘分区、网卡、软件包等实现自动配置,此文件格式与/root/anaconda-ks.cfg相同

我的ks.cfg配置:

#platform=x86, AMD64, 或 Intel EM64T
#version=DEVEL
#Install OS instead of upgrade
install
#Keyboard layouts
keyboard ‘us‘
#Root password
rootpw --iscrypted $1$Cp7O9es8$lemYREzfQ5fM8di1XGlck1
#Use network installation
url --url="ftp://188.188.188.111/centos7"
#System language
lang en_US
#Firewall configuration
firewall --disabled
#System authorization information
auth  --useshadow  --passalgo=sha512
#Use graphical install
graphical
#SELinux configuration
selinux --disabled
#Do not configure the X Window System
skipx

#Network information
network  --bootproto=dhcp --device=eth0
#Reboot after installation
reboot
#System timezone
timezone Asia/Shanghai
#System bootloader configuration
bootloader --location=mbr
#Clear the Master Boot Record
zerombr
#Partition clearing information
clearpart --all --initlabel
#Disk partitioning information
part /boot --fstype="xfs" --size=1000
part swap --fstype="swap" --size=2048
part / --fstype="xfs" --grow --size=1

%packages
@base
@core
@network-server
@remote-desktop-clients

%end

default文件其实就是定制版的isolinux.cfg文件,isolinux.cfg就是系统安装镜像下isolinux/目录中的一个文件,它的作用就是定义linux起始安装界面各种参数
因为是自定义批量部署,我们可以简化它的配置,但pxe安装时文件名必须为default(应该是必须,没试过改名)

我的配置:

default menu.c32
        prompt 5
        timeout 30
        menu title CENTOS7

        label linux
        menu label Install Centos7
        kernel vmlinuz
        append initrd=initrd.img inst.repo=ftp://188.188.188.111/centos7 inst.ks=ftp://188.188.188.111/kickstarts/ks.cfg

计算机启动后,需要引导文件加载内核文件才能进入安装界面
pxelinux.0 - 系统引导文件,安装syslinux后自动生成在/usr/share/syslinux/下
vmlinuz、initrd.img、chain.c32、mboot.c32、menu.c32、memdisk(不限于这些文件,可以根据自己的需求复制):
这些文件内核文件,需要从yum仓库复制TFTP的根目录下,PXE引导时会由DHCP服务器提供这些文件的路径(一般都是TFTP服务器)从TFTP服务器上加载到内存,并进入系统安装引导界面
若清楚操作系统开机启动原理,此处会很好理解


8.开启客户端,设置为网卡启动引导

虚拟机报错:No space left on device
内存小于2G

原文地址:http://blog.51cto.com/13322786/2161440

时间: 2024-11-06 03:53:05

记一次用PXE+kickstart批量为20台新服务器安装centos7的相关文章

centos6.5 pxe kickstart 批量部署

使用本地光盘安装 PXE kickstart (自动化无人值守批量安装服务器) 好久没搞这个东西了,最近马上又要用得到,复习一下 完整的步骤记在这里,说明以后再加上 环境 Centos 6.5  ESXI 虚拟机 服务器端 安装dhcp  tftp-server nfs  挂载光盘 yum install dhcp -ycp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf vim /etc/dhcp/dhcpd.c

linux部署pxe+kickstart批量安装linux操作系统实施方案

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

linux部署pxe+kickstart批量安装linux操作系统

环境 系统 centos6.6 无图形界面 ip 192.168.2.1 系统 centos7.2 有图形界面 以下命令在centos6.6上执行 1. yum -y install dhcp* tftp* vsftpd* syslinux #安装一些软件 2.vim dhcpd.conf subnet 192.168.2.0 netmask 255.255.255.0 { range dynamic-bootp 192.168.2.50 192.168.2.200; next-server 1

PXE+kickstart实现批量部署linux系统

当企业有大量的新机需要安装系统,如果每台都接上系统光盘并人工选择配置安装,无疑工作量巨大.而 PXE+kickstart 的安装方式能够实现自动化批量部署,特别适用于这种场景. 一.批量部署方式 ①物理机:PXE 负载均衡 ②虚拟机:映像文件模板 分布式文件系统 无论是针对物理机还是虚拟机的批量部署,都会对文件服务器造成巨大的压力,可以分别使用负载均衡和分布式文件系统的方式缓解 二.PXE工作原理 客户机通过支持PXE的网卡请求DHCP服务器 --> DHCP服务器给客户端分配IP地址等,并告诉

PXE+kickstart 实现Centos6.5 批量安装 (简单易学)

PXE简介 严格来说,PXE并不是一种安装方式,而是一种引导的方式.进行PXE安装的必要条件是要安装的计算机中包含一个PXE支持的网卡(NIC),即网卡中必须要有PXE client.PXE(Pre-boot Execution Environment,直译为启动前的执行环境)协议使计算机可以通过网络启动.协议分为client和server端,PXE client在网卡的ROM中,当计算机引导时,BIOS把PXE client调入内存执行,由PXE client将放置在远端的文件通过网络下载到本

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

一.废话两句 在云数据中心,一次几十台甚至几百台服务器上线,系统安装将变得非常繁琐,系统安装好了后还会涉及很多配置,如果一台台来安装的话工作量非常大.(虽然有加班费,开个玩笑)为了解决这个问题,我们需要实现无人值守批量部署系统. 简单看一下拓扑图: 1. 什么是PXE? 简单来说:PXE主要是引导作用,具体的详细信息这里就不多说了,详情百度即可. PXE引导流程: 2. 什么是Kickstart? 简单两句就是:Kickstart是一种无人值守的安装方式.它的工作原理是在安装过程中记录典型的需要

详解CentOS 7中PXE高效批量网络装机与kickstart无人值守技术

PXE高效批量网络装机 服务器的批量部署 规模化:同时装配多台服务器 自动化:安装系统.配置各种服务 远程实现:不需要光盘.U盘等安装介质 关于PXE网络 PXE 预启动执行环境,在操作系统之前运行 可用于远程安装,构建无盘工作站 服务端 运行DHCP服务,用来分配地址.定位引导程序 DHCP 自动分配IP地址 定位引导文件 运行TFTP服务器,提供引导程序下载 TFTP 简单文件传输协议 使用UDP协议 端口号69号 优点:高效率 缺点:容量小 用于存放:引导程序pxelinux.0(sysl

PXE + Kickstart高批量网络装机

一.关于PXE简述 1.PXE是由intel公司开发的网络引导技术,工作在C/S模式下,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统.2.搭建PXE网络体系必须满足以下几个前提条件(1)客户机的网卡支持PXE协议(集成BOOTROM芯片),且在主板支持网络引导.(2)网络中有一台DHCP服务器以便客户机自动分配地址,指定引导文件的位置.(3)服务器中通过TFTP(Trivial File Transfer Protocol,简单文本传输协议)提供引导镜像文件的下载.

Pxe+Kickstart无人值守安装Linxu操作系统

KICKSTART无人值守安装: 一.系统安装方法: 光盘安装系统===>一个服务器DVD内置光驱就要花很多钱,试想,几百台服务器仅是装系统用一次光驱,太耗资金,usb外置光驱一台一台插也是够麻烦的. U盘安装系统===>还是同样的问题,要一台一台服务器插U盘. 网络安装系统(ftp,http,nfs) ===>这个方法不错,只要服务器能联网就可以装系统了,但还是需要一台台服务器去敲键盘点鼠标.时刻想偷懒的我们,有没有更好的方法! 高效安装系统法:Kickstart.Cobbler 二.