1.安装相关软件

yum -y install tftp-server httpd dhcp syslinux

2.配置DHCP

cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf

egrep -v "^#|^$" /etc/dhcp/dhcpd.conf

option domain-name "contoso.com";
option domain-name-servers ns1.contoso.com, contoso.com;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet 192.168.10.0 netmask 255.255.255.0 { //服务端IP网段及掩码
option routers 192.168.10.254; //网关
option subnet-mask 255.255.255.0; //掩码
option domain-name-servers 192.168.10.2;
range dynamic-bootp 192.168.10.100 192.168.10.120; //dhcp分发的地址范围
default-lease-time 21600; //设置默认的IP租用期限
max-lease-time 43200; //设置最大的IP租用期限
next-server 192.168.10.7; //TFTP服务器地址
filename "pxelinux.0"; //指定引导文件位置,这里是TFTP根目录下的pxelinux.0
}

测试部署,DHCP由路由提供,需配置 Next server 、Boot File Name pxelinux.0

  • 启动DHCP服务

    systemctl start dhcpd.service

3.配值tftp-server (基本不用修改配置文件)

  • cat /etc/xinetd.d/tftp
# default: off
# description: The tftp server serves files using the trivial file transfer \
# protocol. The tftp protocol is often used to boot diskless \
# workstations, download configuration files to network-aware printers, \
# and to start the installation 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 = yes
per_source = 11
cps = 100 2
flags = IPv4
}
  • cat /usr/lib/systemd/system/tftp.service
[Unit]
Description=Tftp Server
Requires=tftp.socket
Documentation=man:in.tftpd [Service]
ExecStart=/usr/sbin/in.tftpd -s /var/lib/tftpboot
StandardInput=socket [Install]
Also=tftp.socket
  • 启动tftp-server服务

    systemctl start tftp.socket

  • 设定PXE相关的文件:

    cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

    cp /usr/share/syslinux/{chain.c32,mboot.c32,menu.c32,memdisk} /var/lib/tftpboot/

    cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/ #基于pxe安装使用的光盘上的文件(自己本地挂载光盘即可)或者是yum仓库里

    mkdir /var/lib/tftpboot/pxelinux.cfg/

  • vim default #default的文件内容如下

default menu.c32		#加载时显示的默认菜单控制的程序(配置无法启动,menu.c32 改成Linux)
prompt 5 #显示提示符时间
timeout 30 #超时时长
MENU TITLE CentOS 7 PXE Menu #标题为CentOS7 PXE Menu LABEL linux #指明下面菜单项的label
MENU LABEL Install CentOS 7 x86_64 #菜单的label
KERNEL vmlinuz #指明kernel文件
APPEND initrd=initrd.img inst.repo=http://192.168.121.17/centos7 ks=http://192.168.121.17/centos7.cfg #附加给kernel的参数,inst.repo可以是教室的ftp服务器,或者把光盘当做yum仓库,把它作为一个网站的访问就可以了

4.挂载ISO文件

mkdir -pv /media/cdrom

mount -r /dev/cdrom /media/cdrom

mkdir -pv /var/www/html/centos7/

mount --bind /media/cdrom /var/www/html/centos7

5. 配置kickstart文件:

  • 该kickstart文件是CentOS7 最小化安装的一部分+system-config-kickstart 命令创建的kickstart文件(强烈建议在desktop centos7 上面操作system-config-kickstart命令)的合集
#platform=x86, AMD64, 或 Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install
# Keyboard layouts
keyboard 'us'
# Root password
rootpw --iscrypted $1$kncWgT41$Z37pYAKljSaTTQ4EadDqE1
# Use network installation
url --url="http://10.2.1.10/centos7"
# System language
lang en_US
# System authorization information
auth --useshadow --passalgo=sha512
# Use text mode install
text
# SELinux configuration
selinux --disabled
# Do not configure the X Window System
skipx # Firewall configuration
firewall --disabled
# Network information
network --bootproto=dhcp --device=ens33
network --hostname=localhost.pxe
# Reboot after installation
reboot
# System timezone
timezone Asia/Shanghai
# System bootloader configuration
bootloader --location=mbr
# Partition clearing information
clearpart --all --initlabel
# Disk partitioning information
part /boot --fstype="xfs" --size=1024
part swap --fstype="swap" --size=4096
part / --fstype="xfs" --grow --size=1 %post
systemctl disable postfix.service
%end %packages
@^minimal
@compat-libraries
@debugging
@development
bash-completion
dos2unix
lrzsz
nmap
sysstat
tree
vim
wget %end

CentOS7 PXE安装批量安装操作系统的更多相关文章

  1. Centos7 使用 Ansible 批量安装中文字体

    需求背景 Centos7 下 Java 生成图片水印时中文乱码,原因是没有安装中文字体. 安装中文字体 以下是基于 Centos7 手动安装中文字体的详细步骤.当测试或者生产环境服务器比较多的时候,建 ...

  2. PXE+Kickstart 批量安装CentOS 7

    安装之前 将需要安装 CentOS 的服务器与 PXE 服务器通过网络设备连接:PXE 服务器安装 CentOS,并且关闭firewalld.selinux,设置静态IP地址,本例设为10.0.0.1 ...

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

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

  4. pxe自动化批量安装系统(Centos7)

    PXE:preboot execute environment 环境实现:主服务器ip:10.0.10.1 1 tfpt trivial简单文件共享服务,基于udp协议工作: 加载系统安装程序: 69 ...

  5. 解决pxe网络批量安装部署linux遇到的问题和解决方法

    解决“出现Unable to retrieve 192.168.0.100/var/www/html/images/install.img错误” 分析:我们必须了解这个错误出现在哪个阶段才能正确找到错 ...

  6. 使用cobbler批量安装操作系统(基于Centos7.x )

    1.1 cobbler简介 Cobbler是一个Linux服务器安装的服务,可以通过网络启动(PXE)的方式来快速安装.重装物理服务器和虚拟机,同时还可以管理DHCP,DNS等. Cobbler可以使 ...

  7. CentOS 6.5下PXE+Kickstart无人值守安装操作系统centos7.3

    CentOS 6.5下PXE+Kickstart无人值守安装操作系统centos7.3 一.简介 1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行 ...

  8. 自动化安装操作系统(Centos7+PXE+Cobbler+kickstart)

    一.简介 PXE称作是一种引导方式而不是安装方式似乎更加准确,PXE(Pre-boot Execution Environment)是由Intel设计的协议,它可以使计算机通过网络启动,但是有一个前提 ...

  9. kickstart 实现批量安装centos7.x系统

    1.1 安装系统的方法 l  光盘(ISO文件,光盘的镜像文件)===>>每一台物理机都得给一个光驱,如果用外置光驱的话,是不是每台机器都需要插一下 l  U盘:ISO镜像刻录到U盘==& ...

随机推荐

  1. sort函数自定义compare方法

    今天看到有C++这样写: sort(ins.begin(), ins.end(), [](Interval a, Interval b){return a.start < b.start;}); ...

  2. Python 中的 None 与真假

    Python 中 0 为假,大小为 0 的容器也定义为假: 空字符串与空的列表也为假: None 可作为一个对象,该对象的类型为:NoneTye None 表示的含义,更多的是一种不存在,是真正的空, ...

  3. BZOJ 3524主席树裸题 (雾)

    思路: 按权值建一棵主席树 (但是这好像不是正解 空间复杂度是不对的--.) //By SiriusRen #include <cstdio> #include <cstring&g ...

  4. Lumia 1520 IE mobile window.devicePixelRatio

    Lumia 1520 IE11 mobile -> window.devicePixelRatio = 2.217964285714286 Lumia 1520 UAP 环境 -> win ...

  5. IE11 补丁 KB2929437[已过期]

    2014年4月 请更新此补丁 KB2929437 开发人员工具有重要更新 DOM 面板右侧新增 "更改"面板,用于记录调试时修改的 CSS Rules: JS 调试面板,新增 so ...

  6. List<List<model>>如何更快捷的取里面的model?

    访问接口返回数据类型为List<List<model>>,现在想将其中的model插入数据库,感觉一点点循环有点傻,0.0...,各位有没有其他的方法? List<Lis ...

  7. vue computed自动计算

    <!DOCTYPE html> <html> <head> <title>vue</title> <meta charset=&quo ...

  8. caffe(5) 其他常用层及参数

    本文讲解一些其它的常用层,包括:softmax_loss层,Inner Product层,accuracy层,reshape层和dropout层及其它们的参数配置. 1.softmax-loss so ...

  9. NodeJS学习笔记 (11)网络UDP-dgram(ok)

    模块概览 dgram模块是对UDP socket的一层封装,相对net模块简单很多,下面看例子. UPD客户端 vs UDP服务端 首先,启动UDP server,监听来自端口33333的请求. se ...

  10. caioj 1083 动态规划入门(非常规DP7:零件分组)(LIS)

    这道题题目给的顺序不是固定的 所以一开始要自己排序,按照w来排序 后来只要看l就可以了 然后求最长下降子序列即可(根据那个神奇的定理,LIS模板里有提到) #include<cstdio> ...