PXE无人值守批量安装系统

  设想一个场景:假如让你给1000台服务器装系统,你会怎么做?跑去每一台服务器给它安装系统吗?显然不会。接下来就是如果给1000台快捷安装系统。

一、概括

  通过网络引导系统的做法可以不必从硬盘、软盘或CD-ROM硬盘,而是完全通过网络来引导一台计算机。这对于安装来说非常方便,因为它意味着你可以坐在桌子旁边,不必走到机器那里插入CD-ROM光盘或软盘,就可以从网络上引导位于别处的一台机器。

  PXE的作用:就像在网卡上ROM里的小小操作系统,它通过标准API把自己的网络引导功能提供给系统的BIOS,就可以通过网络启动linux;

  PXE网络引导过程:一台主机广播一个设置了PXE选项的DHCP“发现”请求,然后一台DHCP服务器用一个包含有PXE选项的DHCP包来响应它(引导服务器的IP地址和引导文件的名字)。客户机通过TFTP下载它的引导文件,然后执行此引导文件。

  用于执行自动安装的工具叫做kickstart,由system-config-kickstart工具生成kickstart的配置文件ks.cfg。

二、实现思路

  原版(官方)镜像安装完成以后,将系统做成gho系统备份镜像文件。通过网络将gho系统备份镜像分别利用网卡的Mac地址进行ip地址的分配,再分发。

三、环境准备

  两台虚拟机:一个为测试环境:(CentOS,192.168.144.133),另外一台CentOS作为被安装端,设置网络引导安装

四、安装准备

①搭建yum光盘源

  用yum来安装所需要的安装包

(1)[[email protected] ~]# mount /dev/cdrom /mnt   # 先检查根目录中是否有mnt目录

  

(2)在/etc/yum.repos.d 目录下创建一个以.repo 结尾的文件

   [[email protected] ~]# vi /etc/yum.repos.d/server.repo

   配置内容如下:

    

[base]
Name=base
Baseurl=file:///mnt/      #(部分系统可能需要使用file:///mnt/server 的路径)
Enabled=1
Gpgcheck=0    

(3)备份后,删除/etc/yum.repos.d/下的其他文件:rm -rf C*

  

(4)安装 ftp 服务以及开启服务,设置为开机自动启动。

  (yum install vsftpd tftp-server dhcp tftp –y)此命令可一次性安装需要的服务,建议一步一步来!

     [[email protected] ~]# yum install vsftpd  –y (出现complete说明安装完成)

   如果出现“vsftpd-2.2.2-11.el6_4.1.x86_64: failure: Packages/vsftpd-2.2.2-11.el6_4.1.x86_64.rpm from base: [Errno 256] No more mirrors to try.”的情况,先检查是光盘是否挂在至/mnt下。如果已挂在还依然提示该错误,执行命令“yum clean all”命令。

  [[email protected] ~]# /etc/init.d/vsftpd start 或  service vsftpd start

  [[email protected] ~]# chkconfig vsftpd on

(5)安装 TFTP,修改 tftp 配置文件及开启服务  

    [[email protected] ~]# yum install tftp  –y

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

    [[email protected] ~]vim /etc/xinetd.d/tftp,修改第13,14行配置

      

(6)重新启动 xinetd 服务,然后查看服务端口是否打开。  

    [[email protected] ~]# /etc/init.d/xinetd restart 或者service xinetd restart

    

    OK,TFTP 服务正常启动。Xinetd 服务本来就是开机启动的,所以这里我们不再需要设置。

    (注:xinetd是新一代的网络守护进程服务程序,又叫超级Internet服务器,常用来管理多种轻量级Internet服务)

(7)安装 dhcp,修改配置文件及开启服务

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

    [[email protected] ~]# vim /etc/dhcp/dhcpd.conf (第 9,10 行是网络引导需要的配置,必须要有的。)

     

ddns-update-style interim;
ignore client-updates;
# 注意网段需要相同。否则无法使用
subnet 192.168.144.0 netmask 255.255.255.0 {
  # 与服务器IP地址相同
   option routers 192.168.144.133;
  # IP默认租约时间
default-lease-time 21600;
  #IP最大租约时间
max-lease-time 43200;
#IP租约地址池,这里要注意网段一定相同,否则起不来DHCP服务
range 192.168.144.10  192.168.144.100;
option subnet-mask 255.255.255.0;
next-server 192.168.144.133;  # 与服务器IP地址相同
filename "pxelinux.0";
} 

  [[email protected] ~]# /etc/init.d/dhcpd start 或者service dhcpd start    # 启动 DHCP

  [[email protected] ~]# chkconfig dhcpd on   #设置开机自启

  

  # 可能会存在启动失败的情况!! 

  如果是虚拟机,请查看配置信息是否与当前网段匹配。

  如果启动DHCP服务的时候提示“Not searching LDAP since ldap-server, ldap-port and ldap-base-dn were not specified in the config file”

  修改 /etc/rc.d/init.d/dhcpd 文件,将其中的

  user=dhcpd

  group=dhcpd

  改为:

   user=root

  group=root

  至此我们的准备工作完成,下面开始kickstart配置。

五、kickstart配置

   如果找不到 syslinux 目录,需要安装包 yum  install  system-config-kickstart.noarch  –y

(1)执行如下命令

    [[email protected] ~]# mkdir /tftpboot

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

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

    [[email protected] ~]# cp /mnt/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default

    [[email protected] ~]# cp /mnt/images/pxeboot/initrd.img /tftpboot/

    [[email protected] ~]# cp /mnt/images/pxeboot/vmlinuz /tftpboot/

    [[email protected] ~]# chmod 644 /tftpboot/pxelinux.cfg/default

    然后修改  /tftpboot/pxelinux.cfg/default 的配置文件。

    vim /tftpboot/pxelinux.cfg/default   

    (文件里面需要修改两行,修改第 1 行,后面的 linux 意思是寻找下面 18 行的 label linux,然后修改下 22 行(即在后面添加 ks=ftp://”pxe-server-ip”/ks.cfg)。第 22 行的意思是使安装程序通过 FTP 服务器访问 kickstart 文件。)

    其中第 1 行:default linux 表示指定默认入口名称;第 2 行:prompt 1 中 prompt 用来设置是否等待用户选择,1 表示等待用户控制;第 18、23、27、31 行 label linux 表示定义的引导入口,表示系统的不同安装方式,如第 18 行定义的入口表示图形安装。

       

    配置文件修改完了,要开始自动安装,安装程序必须能访问 kickstart 文件。有多种方法可访问 kickstart 文件,其中最常用的一种方法是通过网络服务器进行,例如:ftp 服务器、WEB 服务器或 NFS 服务器,这种方法非常易于部署,并且也使管理更改变得十分简单。也可以通过 USB 磁盘、CD-ROM 或本地硬盘。如果 USB 或 CD-ROM 中的 kickstart 文件非常便于访问,只需将 kickstart 文件放置在用来开始安装的引导介质中。而使用 DHCP 服务器和 TFTP 及 PXE 配置起来更为复杂。

使安装程序指向 kickstart 文件的书写格式如下:

ks=ftp://server/dir/file  如:ks=ftp://ftp 服务器 IP/ks.cfg ks=http://server/dir/file 如:ks=http://http 服务器 IP/ks.cfg ks=nfs:server:/dir/file   如:ks=nfs:nfs 服务器 IP:/var/ftp/pub/ks.cfg ks=hd:device:/dir/file   如:ks=hd:sdb1:/kickstar-files/ks.cfg ks=cdrom:/dir/file      如:ks=cdrom:/kickstart-files/ks.cfg

以上有关 default 配置文件的修改就是通过 ftp 服务器方式来访问 kickstart 文件。

六、制作kickstart无人值守软件

打开终端输入 system-config-kickstart 弹出来界面。 (需要在服务器中打开。)

我们设置下默认安装的语言,时区,根口令,然后勾选下面的安装后重新引导。然后选择安装方法。 (服务器ip)

    

我们配置 ftp 服务器的安装方法。选择执行新安装。然后点击引导装载程序选项

    

GRUB 选项如果无特殊需求,可以不勾选。

    

到这一步,布局这里,我们自己设置下分区大小。

    分区大小需要自己根据情况而定。

    比如我的虚拟机配置较低就要用下面的分区:

    /boot 分区  文件系统类型:ext4   使用硬盘空间大小:200MB

    /swap 分区                      使用硬盘空间大小::2048MG(内存小于 8G 的需设置成内存的两倍,16G以后的内存最好保持物理内存的8G或者相同物理内存的大小,这里实验虚拟机只有1G内存,所以swap分区2048)

    /   根分区  文件系统类型:ext4   使用硬盘空间大小: 剩下所有硬盘空间

    以上三个为基本分区,其他的分区需根据情况制定。

    

网络这里,默认没有,点击添加网络,设备名称为 eth0,网络类型为 dhcp

    

验证部分

        

防火墙和 selinux 根据自己需求选择开启或者禁用

    

显示设置

    

软件包选择,默认没有勾选桌面。根据自己需求勾选。 (基本,语言支持)

    #附上Linux系统最小化安装包选择

       

后面剩余的两项不需要配置。

    提示:安装脚本:在“预安装脚本”,“安装后脚本”对话框中,可以分别添加在安装前、安装后自动的可执行语句。此项设置使服务器自动化配置变得更加容易,例如可以在客户机在完成安装后自动设置 YUM 仓库,如下图所示,需要注意的是:应确保所编写的代码能够正确执行,以免安装失败。

       

    提供一个参考的案例:

    

    然后点击左上角的文件选择保存,选择下保存的路径(/root),然后复制 ks.cfg 文件到/var/ftp/ 目录下: 

    [[email protected] ~]#cp ks.cfg  /var/ftp/

    :ks.cfg 就是无人值守安装时要用的 Kickstart 文件,该文件可以手动进行编辑,如果手动编辑 Kickstart 文件,则使用 ksvalidator 来验证该文件使用正确的关键字,但却无法验证 URL 路径、各个数据包或组等书写错误。Ksvalidator 是 system-config-kickstart 数据包的一部分,

因此必须要安装该软件包

---还记的/tftpboot/pxelinux.cfg/default 文件中设置过 ks=ftp://192.168.10.1/ks.cfg 因此必须

执行上面的一步重新挂载 安装光盘到/var/ftp/pub 目录下,开始执行另一台机器的无人值守安装:   

    [[email protected] ~]#umount /dev/cdrom      # 取消原来是挂载到/mnt 下的镜像文件。Umount /dev/cdrom(umount /mnt)

    [[email protected] ~]#mount /dev/cdrom  /var/ftp/pub

    建议关闭防火墙和 selinux,如果没有关闭的话,tftp 服务会有问题。

    设置防火墙:

    #chkconfig iptables off  (重启生效)

    #service iptables stop    (即刻生效)

    关闭 selinux 功能:有如下两种方法可以实现

    1) 永久关闭 selinux 功能:修改/etc/sysconfig/selinux 文件,将 SELINUX=enforcing 改为 disabled,要重启系统才生效

    2)临时关闭 selinux 功能:#setenforce  0  不需要重启系统若使用 vmware 虚拟机,如果还失败的话,就把 vmware 虚拟机软件所提供的 DHCP 功能停掉。(一般情况下不影响)

七、安装启动机器

接下来启动你要安装的机器了(设置为网络引导安装,你就可以休息下,等待自己安装完成)

    新建一台虚拟机,操作系统稍后选择安装。将此虚拟机开机,默认会通过DHCP选择刚刚的192.168.144.133配置好的PXE进行安装系统。至此我们已经完成PXE无人值守系统安装。

  

  它会全程自己安装

  

引导过程可能出现的问题

    

  如果出现这个状态请查看 ks 的路径和 selinux 是否关闭。

  查看 SELinux 状态:

  1、 /usr/sbin/sestatus -v      ##如果 SELinux status 参数为 enabled 即为开启状态

  SELinux status:                 enabled

  2、 getenforce                 ##也可以用这个命令检查

  如果遇到 Unable to retrieve ftp ,确认是否进行了镜像挂载, ls /var/ftp/pub/ 即可。

原文地址:https://www.cnblogs.com/rmxd/p/11320369.html

时间: 2024-08-28 17:20:42

PXE无人值守批量安装系统的相关文章

【自测成功案例】PXE无人值守批量安装系统

项目简介: PXE高效批量网络装机 在我们实际工作中,服务器并不会配备光驱设备,但是又需要安装几十台服务器裸机服务器怎么办,又需求就会有解决的办法,PXE(预启动执行环境)技术的网络装机方法.并结合kickstart配置实现无人值守自动安装就解决了这一个实际问题. 部署要求: 1·客户机的网卡需要支持PXE协议,且主板支持网络引导(市面上大多数都支持) 2·需要又一台DHCP服务器为客户机自动分配地址.指定引导文件位子. 3·服务器通过TFTP(简单文件传输协议),提供引导镜像文件的下载 环境要

简单搭建PXE无人值守自动化安装系统

PXE环境概述 在公司进行批量部署服务器安装方法: Kickstart (PXE+DHCP+TFTP+HTTP) 或 Cobbler 批量装机软件介绍 Kickstart和Cobbler. ??Kickstart是一种无人值守的安装方式.它的工作原理是在安装过程中记录人工干预填写的各种参数,并生成一个名为ks.cfg的文件.如果在自动安装过程中出现要填写参数的情况,安装程序首先会去查找ks.cfg文件,如果找到合适的参数,就采用所找到的参数:如果没有找到合适的参数,便会弹出对话框让安装者手工填写

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 实现无人值守批量部署系统

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

搭建PXE服务器,实现无人值守自动安装系统

实验:搭建PXE服务器,实现无人值守自动安装系统 在PXE服务器和新安装的服务器上分别安装http实现均衡负载 建立主从DNS服务器 第一步,先配置DHCP,目的是给需要安装系统的主机分配ip地址 服务器IP地址设为192.168.100.11 [[email protected] ~]# ifconfig eth0 | grep "inet addr" inet addr:192.168.100.11  Bcast:192.168.100.255  Mask:255.255.255.

kvm cobbler无人值守批量安装操作系统

kvm cobbler无人值守批量安装操作系统 cobbler:一个自动网络安装系统的工具,集成PEX.dhcp.dns.tftpd.sync等服务.可以供大家管理安装操作系统 kvm:Linux系统自带的虚拟化软件,自行找资料学习. 环境描述: cobbler: 系统:CentOS_x86 6.8 网卡: eth0:vm1 (管理)10.10.100.131 ech1:NAT (上网)DHCP kvm: 系统:CentOS_x86 6.8 网卡: eth0:vm1 (管理)10.10.100.

无人值守批量安装

---恢复内容开始--- 无人值守批量安装 首先安装system-config-kickstart工具,既可以通过图形化向导方式配置安装文件:需要注意的是要使用该工具需要在图形界面操作. [[email protected] ~]# yum -y install system-config-kickstart 然后直接运行system-config-kickstart工具配置(具体配置就看个人需求) [[email protected] ~]# system-config-kickstart 界

pxe&centos批量安装

PXE批量安装centos6系统 本实验通过pxe/ftp/dhcp/tftp来完成批量部署centos系统 安装: yum install   -y  dhcp*  tftp*  vsftp ------------------------------------------dhcp----------------------------------------- [[email protected] pub]# cat /etc/dhcp/dhcpd.conf ddns-update-sty

cobbler批量安装系统使用详解-技术流ken

1.前言 cobbler是一个可以实现批量安装系统的Linux应用程序.它有别于pxe+kickstart,cobbler可以实现同个服务器批量安装不同操作系统版本. 2.系统环境准备及其下载cobbler 一.系统环境 系统版本:CentOS release 6.7 (Final) 内网IP:192.168.232.7/24    #用来对内通信,提供cobbler服务 外网IP:10.220.5.166/24      #连接外网 二. 关闭安全服务 [[email protected] ~