安装之前

将需要安装 CentOS 的服务器与 PXE 服务器通过网络设备连接;PXE 服务器安装 CentOS,并且关闭firewalld、selinux,设置静态IP地址,本例设为10.0.0.1;一般来说因为是在内网操作,还需要配置本地YUM源。本例仅适用UEFI引导,BIOS稍有不同。

配置PXE服务器

配置tftp服务器

1.安装tftp服务器

[root@localhost ~]# yum -y install tftp-server

2.配置tftp服务器支持xinetd

在 /etc/xinet.d/tftp 配置文件中,将 disabled 参数从 yes 改为 no

配置DHCP服务器

1.安dhcp服务器

[root@localhost ~]# yum -y install dhcp

2.将您的 DHCP 服务器配置为使用采用 shim 打包的 EFI 引导映象。

[root@localhost ~]# vi /etc/dhcp/dhcpd.conf 

示例如下

option space pxelinux;
option pxelinux.magic code 208 = string;
option pxelinux.configfile code 209 = text;
option pxelinux.pathprefix code 210 = text;
option pxelinux.reboottime code 211 = unsigned integer 32;
option architecture-type code 93 = unsigned integer 16; subnet 10.0.0.0 netmask 255.255.255.0 {
option routers 10.0.0.1;
range 10.0.0.2 10.0.0.253; class "pxeclients" {
match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
next-server 10.0.0.1; if option architecture-type = 00:07 {
filename "uefi/shim.efi";
} else {
filename "pxelinux/pxelinux.0";
}
}
}

关于dhcp配置文件的简要说明:

subnet 10.0.0.0 netmask 255.255.255.0 {    //DHCP地址池网段,子网掩码
option routers 10.0.0.1;    //dhcp服务器的IP地址
range 10.0.0.2 10.0.0.253;    //DHCP地址池

提取引导文件

需要提取shim 软件包中的 shim.efi 文件,以及 ISO 映像文件中 grub2-efi 软件包的 grubx64.efi 文件

[root@localhost ~]# mount /dev/cdrom /mnt/  //挂载镜像文件,视实际情况而定
[root@localhost ~]# cp -pr /mnt/Packages/shim-x64-12-1.el7.centos.x86_64.rpm /tmp/
[root@localhost ~]# cp -pr /mnt/Packages/grub2-efi-x64-2.02-0.64.el7.centos.x86_64.rpm
[root@localhost ~]# cd /tmp/
[root@localhost tmp]# rpm2cpio shim-x64-12-1.el7.centos.x86_64.rpm | cpio -dimv
[root@localhost tmp]# rpm2cpio grub2-efi-x64-2.02-0.64.el7.centos.x86_64.rpm | cpio -dimv

添加引导文件进tftp目录

[root@localhost ~]# mkdir /var/lib/tftpboot/uefi
[root@localhost ~]# cp /tmp/boot/efi/EFI/centos/shim.efi /var/lib/tftpboot/uefi/
[root@localhost ~]# cp /tmp/boot/efi/EFI/centos/grubx64.efi /var/lib/tftpboot/uefi/
[root@localhost ~]# cp /mnt/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/uefi/

添加 grub.cfg 配置文件

[root@localhost ~]# vi /var/lib/tftpboot/uefi/grub.cfg
set timeout=60
menuentry 'CentOS 7' {
linuxefi uefi/vmlinuz ip=dhcp inst.repo=http://10.0.0.1/
initrdefi uefi/initrd.img
}

配置文件简要说明

menuentry 'CentOS 7'  //这个是个引导项,之后安装会看到,引号部分可以自定义
linuxefi uefi/vmlinuz ip=dhcp inst.repo=http://10.0.0.1/
initrdefi uefi/initrd.img
//这两行是定制引导项,相当于安装进入引导菜单时,按e将看到这两行,inst.repo=10.0.0.1指定安装源。

准备安装源

这里我采用的是通过http提供安装树

[root@localhost ~]# yum -y install httpd
[root@localhost ~]# mount /dev/cdrom /mnt/  //如果之前挂载的镜像没卸载,则无需重新挂载
[root@localhost ~]# cp -rv /mnt/* /var/www/html/

开启所需服务

[root@localhost ~]# systemctl start httpd dhcpd xinetd

自此,PXE 服务器已经准备完成,设置需要安装系统的计算机从网络(PXE)启动,即可。

Tips:tftp服务属于瞬时服务,即使手动开启,一段时间后,无连接请求,也会自动关闭,而且也无法在系统引导时自动启动(也就是说systemctl enable tftp是无效的),平时tftp服务不启动,只有用户请求tftp服务的时候,才会被xinetd启动,接受客户端的请求。配置tftp支持xinetd就是之前的启用tftp的步骤:在 /etc/xinet.d/tftp 配置文件中,将 disabled 参数从 yes 改为 no

Tips:此例我将10.0.0.1这台服务器设置为 PXE 服务器,提供引导安装功能,同时也在10.0.0.1上配置了安装源(此例是通过http提供安装树),需要注意的就是10.0.0.1这台服务器上的防火墙、SElinux一定要关闭,或者打开防火墙中httpd、dhcpd、tftp这些服务的端口,配置SElinux。至此已经提供了我们需要安装的服务器只需要设置从网络(PXE)启动就可以开始安装了,但是实现PXE+Kickstart自动安装,还需要一些步骤。

完全的PXE+Kickstart自动化安装

准备Kickstart文件

一般是单用PXE服务器手动设定配置项目后,安装一台,使用其 /root 目录下面将 anaconda-ks.cfg,可以重命名为 ks.cfg 。手动编辑 Kickstart 文件较为繁琐,也可以通过工具 system-config-kickstart 生成,该工具需要在图形化界面下运行。

对于 anaconda-ks.cfg 通常我们还需要做一些修改,使安装后重启,运行一些脚本。

将Kickstart文件部署与网络中

这里我们可以使用之前用作提供安装源的http服务器,将 Kickstart 文件放入 http 服务器中 /var/www/html 目录中。

添加定制引导项支持 Kickstart

修改之前创建的 grub.efi 文件如下:

[root@localhost ~]# vi /var/lib/tftpboot/uefi/grub.cfg
set timeout=60
menuentry 'CentOS 7' {
linuxefi uefi/vmlinuz ip=dhcp inst.repo=http://10.0.0.1/ inst.st=http://10.0.0.1/ks.cfg
initrdefi uefi/initrd.img
}

实际上只是添加了

inst.st=http://10.0.0.1/ks.cfg

重启所需的服务,设置需要安装的系统从网络(PXE)启动

注意:特别需要注意http服务器提供文件的是否有读权限

PXE+Kickstart 批量安装CentOS 7的更多相关文章

  1. PXE+kickstart无人值守安装CentOS 7

    kickstart+cobbler系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html 本文是PXE+kickstart无人值守安装CentOS ...

  2. (转)PXE+kickstart无人值守安装CentOS 7

    kickstart+cobbler系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html 本文是PXE+kickstart无人值守安装CentOS ...

  3. PXE+kickstart无人值守安装CentOS 6

    本文目录: 1.1 PXE说明 1.2 PXE流程 1.3 部署环境说明 1.4 部署DHCP 1.5 部署TFTP 1.6 提供pxe的bootloader和相关配置文件 1.7 利用原版安装镜像获 ...

  4. PXE+Kickstart 自动安装CentOS系统

    PXE (preboot execcute environment) 依赖服务 dhcp tftp file server (yum repository) 准备TFTP服务器  如何配置TFTP服务 ...

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

    环境 系统 centos6.6 无图形界面 ip 192.168.2.1 系统 centos7.2 有图形界面 以下命令在centos6.6上执行 1. yum -y install dhcp* tf ...

  6. [转]CentOS 6.4下PXE+Kickstart无人值守安装操作系统

    一.简介 1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持 ...

  7. CentOS 6.4下PXE+Kickstart无人值守安装操作系统 转

    一.简介 1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持 ...

  8. CentOS 6.6下PXE+Kickstart无人值守安装操作系统

    一.简介 1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持 ...

  9. 【转载】CentOS 6.4下PXE+Kickstart无人值守安装操作系统

    [转载]CentOS 6.4下PXE+Kickstart无人值守安装操作系统 转自:CentOS 6.4下PXE+Kickstart无人值守安装操作系统 - David_Tang - 博客园 http ...

随机推荐

  1. PHP中SQL查询语句的id=%d解释

    在SQL语句中有一些写的是这样的: 'SELECT id FROM dbname WHERE xx_id = %d;', $bl['student_id'] 其中的“xx_id = %d”,这里的%d ...

  2. Java 设计模式系列(七)桥接模式

    Java 设计模式系列(七)桥接模式 桥接模式(Bridge)是一种结构型设计模式.Bridge 模式基于类的最小设计原则,通过使用封装.聚合及继承等行为让不同的类承担不同的职责.它的主要特点是把抽象 ...

  3. 本周MySQL官方verified/open的bug列表(11月15日至11月21日)

    本周MySQL verified的bug列表(11月15日至11月21日) 1. Bug #70923    Replication failure on multi-statement INSERT ...

  4. cucumber安装步骤

    #Start Guide##Environment###1. Install Ruby Verify your installation by running ruby -v in a termina ...

  5. Zookeeper基本使用(转)

    一.Zookeeper架构 云计算越来越流行的今天,单一机器处理能力已经不能满足我们的需求,不得不采用大量的服务集群.服务集群对外提供服务的过程中,有很多的配置需要随时更新,服务间需要协调工作,这些信 ...

  6. java 文件中 定义一个字符串,它的默认编码是什么?

    .java 文件的编码就是 String 字符串的编码 File 文件的编码就是 文件内容的编码 request 的设置的编码就是inputstream 的编码 jvm 的默认编码(the defau ...

  7. “undefined JNI_GetCreatedJavaVM”和“File format not recognized”错误原因分析

    如果编译时,报如下所示错误:../../third-party/hadoop/lib/libhdfs.a(jni_helper.c.o): In function `getGlobalJNIEnv': ...

  8. [label][OS] 制作 U 盘安装 Windows 7

    U盘安装完美的WIN7操作系统教程 [编辑] 请使用正版系统   http://item.jd.com/965031.html   以保证您的电脑信息安全 此教程适用与 win7及win8 准备工作 ...

  9. Oracle ERP View - fnd_global.apps_initialize

    在ORACLE APPLICATION FORM中已存储了数据,在客户端TOAD中查找其TABLE找到相关数据行,但当查找其VIEW时就无法找到数据. 原因ORACLE的权责及OU安全机制屏蔽问题. ...

  10. 使用zookeeper自带的zkCli.sh客户端工具实现对zk的CURD常见操作详解

    一.zookeeper自带的 zkCli.sh 客户端工具 1. 应急和测试使用到的一个工具. 还有C# dirver java dirver (驱动)   二.driver的使用方式有两种 zkCl ...