PXE实现批量部署linux系统

pxe批量部署linux服务器

1、pxe介绍

PXE是有intel设计的协议,它可以使计算机通过网络启动,协议分为client和server两端,PXEclient在网卡的ROM中,当计算机引导时,BIOS把PXE client调入内存中执行,并显示出命令菜单,经用户选择PXE启动后,PXE client获取网络地址信息,然后将放置在远端的服务器上的操作系统文件通过网络下载到本地运行

既然是通过网络传输,就需要IP地址,也就是说在PXE启动过程中,PXE客户端会请求DHCP服务器分配IP地址,之后PXEclient使用TFTP client通过TFTP协议连接服务器下载启动安装程序所需要的文件到本地

2、PXE安装过程

第一步: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,并按照该文件的配置请求下载安装过程需要的软件包。

3、pxe的部署

系统:CentOS release 6.4 (Final)- 2.6.32-358.el6.x86_64

所需服务:vsftpd,dhcp,tftp

步骤:

1)配置DHCP,用于给客户端提供IP地址及其它信息

2)配置TFTP服务器,用于提供客户端PXE引导所必须的文件

3)配置FTP服务器,用于存放安装文件

4)配置Kickstart,用于自动应答安装

5)使用PXE功能引导客户机

3.1 配置dhcp服务

[[email protected] ~]# yum install dhcp –y
[[email protected] ~]# vim /etc/dhcp/dhcpd.conf 
[[email protected] ~]# cat /etc/dhcp/dhcpd.conf
ddns-update-style none;
ignore client-updates;
subnet 192.168.1.0 netmask 255.255.255.0 {
        optionrouters                  192.168.1.1;
        option subnet-mask              255.255.255.0;
        optiondomain-name             "JeckFY.org";
        optiondomain-name-servers      192.168.1.1;
        optiontime-offset              -18000; 
        range192.168.1.128 192.168.1.254;
        default-lease-time21600;
        max-lease-time43200;
        next-server 192.168.1.1;         
        filename"pxelinux.0"; 
}
[[email protected] ~]# service dhcpd configtest
Syntax: OK
[[email protected] ~]# service dhcpd start
Starting dhcpd:                                            [  OK  ]
[[email protected] ~]# netstat -anput | grep dhcp 
udp        0      0 0.0.0.0:67                  0.0.0.0:*                               1300/dhcpd          
[[email protected] ~]# ps -ef | grep dhcp
dhcpd     1300    1  0 22:40 ?        00:00:00 /usr/sbin/dhcpd -user dhcpd-group dhcpd
root      1307  1155  022:41 pts/0    00:00:00 grep dhcp
[[email protected] ~]# chkconfig dhcpd on

3.2 配置tftp服务

1)安装软件
[[email protected] ~]# yum install xinetd tftp* syslinux -y
[[email protected] ~]# vim /etc/xinetd.d/tftp 
[[email protected] ~]# cat /etc/xinetd.d/tftp 
# default: off
# description: The tftp server serves files using the trivialfile transfer #       protocol.  The tftp protocol is often used to bootdiskless #       workstations,download configuration files to network-aware printers, #       and to start theinstallation process for some operating systems.
service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /var/lib/tftpboot
        disable                 = no      #开启tftp服务,默认为yes
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}
2)拷贝所需文件
TFTP服务器为客户端主要提供pxelinux.0引导文件,vmlinuz内核文件,initrd.img基础安装平台文件以及default文件。
挂载OS镜像到/media目录下,用于拷贝所需文件
[[email protected] ~]# mount /dev/cdrom /media/
mount: block device /dev/sr0 is write-protected, mountingread-only  
拷贝pxelinux.0vmlinuz initrd.img,以及生成default文件       
[[email protected] ~]# cp /usr/share/syslinux/pxelinux.0/var/lib/tftpboot/      
[[email protected] ~]# cp /media/isolinux/vmlinuz /var/lib/tftpboot/
[[email protected] ~]# cp /media/isolinux/initrd.img/var/lib/tftpboot/
[[email protected] ~]# mkdir -p /var/lib/tftpboot/pxelinux.cfg
[[email protected] ~]# cp /media/isolinux/isolinux.cfg/var/lib/tftpboot/pxelinux.cfg/
[[email protected] ~]# mv /var/lib/tftpboot/pxelinux.cfg/isolinux.cfg/var/lib/tftpboot/pxelinux.cfg/default
[[email protected] ~]# ls /var/lib/tftpboot/
initrd.img pxelinux.0  pxelinux.cfg  vmlinuz
[[email protected] ~]# ls /var/lib/tftpboot/pxelinux.cfg/
default
3)编辑default文件
[[email protected] ~]# cat /var/lib/tftpboot/pxelinux.cfg/default 
default linux         #default项中标记的启动内核为默认启动项
prompt 0        #显示boot:提示符。为0时则不提示,将会直接启动default参数中指定的内容。为1时会等待输入label后关键字,从而启动相应内核
timeout 600         #等待超时时间
display boot.msg
label linux
  menu label ^Install orupgrade an existing system
  menu default
  kernel vmlinuz            #kernel 参数指定要启动的内核。
  append initrd=initrd.imgks=ftp://192.168.1.1/ks.cfg ksdevice=eth0    # ks指定了ks文件的路径,ksdevice指定从哪块网卡获取安装文件
4)启动tftp
[[email protected] ~]# service xinetd start
Starting xinetd:                                          [  OK  ]
[[email protected] ~]# chkconfig xinetd on
[[email protected] ~]# netstat -anput | grep xinetd 
udp        0      0 0.0.0.0:69                  0.0.0.0:*                               1419/xinetd

3.3 配置vsftpd服务

[[email protected] ~]# yum install vsftpd –y
[[email protected] ~]# mkdir -p /var/ftp/centos
[[email protected] ~]# cp -fr /media/* /var/ftp/centos/
[[email protected] ~]# ls /var/ftp/centos/
CentOS_BuildTag RELEASE-NOTES-en-US.html
EFI              repodata
EULA            RPM-GPG-KEY-CentOS-6
GPL             RPM-GPG-KEY-CentOS-Debug-6
images          RPM-GPG-KEY-CentOS-Security-6
isolinux        RPM-GPG-KEY-CentOS-Testing-6
Packages         TRANS.TBL
[[email protected] ~]# service vsftpd start
Starting vsftpd for vsftpd:                                [  OK  ]
[[email protected] ~]# chkconfig vsftpd on
[[email protected] ~]# netstat -anput | grep vsftpd
tcp        0      0 0.0.0.0:21                  0.0.0.0:*                   LISTEN      1444/vsftpd

3.4 生成ks.cfg文件

   [[email protected]~]#yum install system-config-kickstart –y
   进入图形化界面配置kickstart
[[email protected] ~]# init 5
[[email protected] ~]#system-config-Kickstart
按照提示进行配置,最后保存到/var/ftp/目录下
[[email protected] ~]# cat /var/ftp/ks.cfg 
#platform=x86, AMD64, 或 IntelEM64T
#version=DEVEL
# Firewall configuration
firewall --enabled
# Install OS instead of upgrade
install                      ====>表示全新安装,而不是升级update
# Use network installation
url --url="ftp://192.168.1.1/centos"    ====>OS文件所在的位置
# Root password
rootpw --iscrypted $1$5axKiu3u$l2pavqIifA/MUgXUHadKa.    ====>root密码
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use graphical install
graphical        ====>表示采用图形化模式安装(不是安装图形化界面)
firstboot –disable      ====>安装完时候自动重启(若启用该设置会导致第二次自动安装)
# System keyboard
keyboard us       ====>键盘语言
# System language
lang en_US           ====>系统语言环境
# SELinux configuration
selinux –enforcing             ====>selinux是否启用
# Installation logging level
logging --level=info                  ====>日志级别
 
# System timezone
timezone  Africa/Abidjan                  ====>时区设置
# Network information
network  --bootproto=dhcp--device=eth0 --onboot=on            ====>网卡设置
# System bootloader configuration
bootloader --location=mbr          ====>硬盘模式为mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all --initlabel        ====>清除全部分区
# Disk partitioning information      ====>分区信息
part /boot --fstype="ext4" --size=200
part swap --fstype="swap" --size=4096
part / --fstype="ext4" --grow --size=1
%packages                             ====>默认安装软件包
@base
@chinese-support
@development
@system-admin-tools
%end

至此:pxe服务器端已经部署完毕。在客户机端开机选择pxe启动,就可以实现自动批量装系统

扩展

多版本同时批量部署

修改default的文件
default linux
prompt 1
timeout 600
#display boot.msg
display memu
label centos5.6
  kernel centos5.6/vmlinuz
  appendinitrd=centos5.6/initrd.img ks=ftp://192.168.1.1/ks/centos5.6.cfg ksdevice=eth0
label centos6.0
  kernel centos6.0/vmlinuz
 appendinitrd=centos6.0/initrd.img ks=ftp://192.168.1.1/ks/centos6.0.cfg  ksdevice=eth0
label centos6.4
  kernel centos6.4/vmlinuz
  appendinitrd=centos6.4/initrd.img ks=ftp://192.168.1.1/ks/centos6.4.cfg  ksdevice=eth0
在根据default文件的各个所需文件的路径。创建对应的文件即可
时间: 2024-12-11 11:31:54

PXE实现批量部署linux系统的相关文章

自动化批量部署Linux系统(Kickstart+DHCP+NFS(http)+TFTP+PXE)

自动化批量部署Linux系统 (Kickstart+DHCP+NFS(http)+TFTP+PXE) 楓城浪子原创(除原理流程图外),转载请标明出处! 更多技术博文请见个人博客:https://fengchenglangzi.000webhostapp.com 微信bh19890922 QQ445718526.490425557 序: 本文主要介绍自动化部署操作系统,主要借助的工具包含(Kickstart+DHCP+NFS(http)+TFTP+PXE),至于每种工具用途及作用请自行补脑,本文主

详解使用Cobbler快速批量部署linux系统

前言:这几天闲着没事来系统组玩玩,学点东西总是好的嘛.系统组系统组当然还是从学会装系统开始.花了两个小时折腾了一下用cobbler批量部署linux系统.第一次做当然中间遇到很多问题,不过都顺利解决了.完了总结一下写个帖子和大家分享一下. 系统版本:Centos6.5 32位cobbler服务器IP:192.168.175.130 IP地址段:192.168.175.120-192.168.175.140子网掩码:255.255.255.0网关:192.168.175.2DNS:8.8.8.8

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

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

利用pxe dhcp tfcp http kickstart实现批量部署linux系统

1.为什么要实现批量部署利用一台已经做好配置的主机去批量安装其他主机系统2.了解什么是Pxe1.预启动执行环境(Preboot eXecution Environment,PXE)也被称为预执行环境,提供了一种使用网络接口(Network Interface)启动计算机的机制.这种机制让计算机的启动可以不依赖本地数据存储设备(如硬盘)或本地已安装的操作系统 .2.由Intel和Systemsoft公司于1999年9月20日公布的技术3.C/S的工作模式4.PXE客户端会调用网际协议(IP).用户

PXE批量部署 Linux 系统

实验场景描述:1.准备环境:配置httpd服务,关闭系统策略2.配置应答文件通过system-config-kickstart 配置应答文件3.指定应答文件客户端指定应答文件具体如下所示:若描述有误欢迎拍砖交流:QQ:45223208 一.准备服务器环节1.安装httpd服务yum install httpd -y 如图所示 2.启动httpd服务 systemctl start httpd systemctl enable httpd 3.修改系统相关策略 关闭防火墙和selinux策略 sy

【亲测可用】Cobbler自动批量部署Linux系统

Cobbler是一个快速网络安装linux的服务,而且在经过调整也可以支持网络安装windows.该工具使用python开发,小巧轻便,使用简单的命令即可完成PXE网络安装环境的配置,同时还可以管理DHCP.DNS.TFTP.RSYNC以及yum仓库.构造系统ISO镜像. Cobbler支持命令行管理,web界面管理,还提供了API接口,可以方便二次开发使用. Cobbler客户端Koan支持虚拟机安装和操作系统重新安装,使重装系统更便捷. 环境准备 VMware 12 虚拟机 Centos 7

kickstart+DHCP+NFS+TFTP+PXE 全自动化部署Linux系统

目录 kickstart+DHCP+NFS+TFTP+PXE 安装详细步骤 执行PXE--kickstart 安装需要的设备为 用到的kickstart工具.依赖于X Windows,所以要提前安装好,XWindows及GNOME 并重启系统 修改/etc/inittab配置文件 重启系统 reboot 启动图像化 上传centos7.4.iso 至 /usr/loca/src mkdir -p mnt/cdrom 安装dhcp 创建Apache目录 mkdir -p /var/html/www

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)协议下载一个启动软件包到本机内

Cobbler全自动批量安装部署Linux系统

前言:这篇文章是系统运维www.osyunwei.com的作品,我只是根据实践了一下,出于对原作者的尊重附原文链接如下: 原文链接:http://www.osyunwei.com/archives/7606.html 根据文章的说明是可以完成所属功能的,不过原文章有点小问题,在本文中我已经修改过了,仅供大家参考,有问题大家交流,E-mail:[email protected] 安装之前的一点说明 Cobbler服务器系统:CentOS5.10 64位 IP地址:192.168.21.128 需要