PXE: 
   Preboot Excution Environment 预启动执行环境 
   Intel公司研发 
   基于Client/Server的网络模式,支持远程主机通过网络从远端服务器下载
   映像,并由此支持通过网络启动操作系统 
   PXE可以引导和安装Windows,linux等多种操作系统 
PXE工作原理:
   Client向PXE Server上的DHCP发送IP地址请求消息,DHCP检测Client是否合法(主要是检
       测Client的网卡MAC地址),如果合法则返回Client的IP地址,同时将启动文件pxelinux.0的
       位置信息一并传送给Client 
Client向PXE Server上的TFTP发送获取pxelinux.0请求消息,TFTP接收到消息之后再向Client
       发送pxelinux.0大小信息,试探Client是否满意,当TFTP收到Client发回的同意大小信息之后,
       正式向Client发送pxelinux.0 
Client执行接收到的pxelinux.0文件 
Client向TFTP Server发送针对本机的配置信息文件(在TFTP 服务的pxelinux.cfg目录下),
        TFTP将配置文件发回Client,继而Client根据配置文件执行后续操作。 
Client向TFTP发送Linux内核请求信息,TFTP接收到消息之后将内核文件发送给Client 
Client向TFTP发送根文件请求信息,TFTP接收到消息之后返回Linux根文件系统 
Client启动Linux内核 
Client下载安装源文件,读取自动化安装脚本

大致的流程如下图:

PXE:内存要大,2G,内存不够会导致启动故障。

配合TFTP、DHCP、FTP/HTTP,仅主机模式。设置成开机启动!网卡内置pxe芯片。

1、禁止iptabels,selinux

安装三个服务并开机启动:

关掉vmware的dhcp服务

准备httpd的yum源仓库:

挂载需要写入到/etc/fstab文件中才能启动还生效。

修改应答文件(url和密码)并放至yum源仓库/var/www/html/

编辑dhcp文件并启动:默认配置文件是空的。。

安装syslinux包生成pxelinux.0文件,并复制到/var/lib/tftpboot下

yum install syslinux

ftp文件下:/var/lib/tftpboot下有一下文件,原来是空的。

cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot/
cp /mnt/isolinux/{initrd.img,vmlinuz}
makir /var/lib/tftpboot/pxelinux.cfg/
cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

修改default菜单项:

开启端口:67 69 80 ss -nutl

以上是centos7的实验,centos6大体是一样的,不过是tftp是受xinetd来启动控制的。

Linux自动化之基于http的pxe安装服务的更多相关文章

  1. 【自动化】基于Spark streaming的SQL服务实时自动化运维

    设计背景 spark thriftserver目前线上有10个实例,以往通过监控端口存活的方式很不准确,当出故障时进程不退出情况很多,而手动去查看日志再重启处理服务这个过程很低效,故设计利用Spark ...

  2. [PXE] Linux(centos6)中PXE 服务器搭建,PXE安装、启动及PXE理论详解

    [PXE] Linux(centos6)中PXE 服务器搭建,PXE安装.启动及PXE理论详解 本篇blog主要讲述了[PXE] linux(centos)PXE无盘服务器搭建,安装,启动及pxe协议 ...

  3. 《Linux就该这么学》培训笔记_ch19_使用PXE+Kickstart无人值守安装服务

    <Linux就该这么学>培训笔记_ch19_使用PXE+Kickstart无人值守安装服务 文章最后会post上书本的笔记照片. 文章主要内容: 无人值守系统 部署相关服务程序 配置DHC ...

  4. 通过PXE安装Linux实况

    通过PXE安装Linux实况 网卡引导操作系统的过程我们可以把它称为PXE(Pre-bootExecutionEnvironment),十几年前,在搞无盘NT时候,我们为了使网卡支持PXE引导要特意购 ...

  5. 基于linux下的NIST数字测试包安装过程

    基于linux下的NIST数字测试包安装过程 1. 首先解决windows文件不能粘贴到Ubuntu的问题 选择利用VMware Tools进行解决 打开虚拟机VMware Workstation,启 ...

  6. CentOS7 PXE安装批量安装操作系统

    1.安装相关软件 yum -y install tftp-server httpd dhcp syslinux 2.配置DHCP cp /usr/share/doc/dhcp-4.2.5/dhcpd. ...

  7. RHEL 6.5 PXE 安装调试 VMWARE ESXi 5.1 安装

    测试环境:win10/vmware workstation 12 pro 操作系统:RHEL 6.5(PXE服务器) [2016.11.30] [遗留问题] 1.ks.cfg通过本地文件方式加载不成功 ...

  8. Linux下SVN服务器安装配置及客户端安装说明

    原文地址:http://wenku.baidu.com/link?url=h3dVAMx4azpOXEND5HQEE6nliE8-zc0GSQ03yv4cUs1vXMALXF64UsK7kT7kXm_ ...

  9. linux学习(一)认识、安装Linux

    一.什么是Linux linux是一种操作系统,我们用的android和ios就是分别是linux操作系统和类unix操作系统. linux也是我们经常说的服务器.我们看的网站,游戏,app背后都是服 ...

随机推荐

  1. 嵌入式C语言经常使用keyword

    1.statickeyword 这个keyword前面也有提到.它的作用是强大的. 要对statickeyword深入了解.首先须要掌握标准C程序的组成. 标准C程序一直由下列部分组成:       ...

  2. MongoDB集群——分片

    1. 分片的结构及原理分片集群结构分布: 分片集群主要由三种组件组成:mongos,config server,shard1) MONGOS数据库集群请求的入口,所有的请求都通过mongos进行协调, ...

  3. 2015南阳CCPC A - Secrete Master Plan A.

    D. Duff in Beach Description Master Mind KongMing gave Fei Zhang a secrete master plan stashed in a ...

  4. es bulk 批量删除

    bulk [root@hadoop2 ~]# cat bulk.del.es.json {"delete":{"_index":"direct_vot ...

  5. ASP.NET_SessionId vs .ASPXAUTH why do we need both of them?

    https://stackoverflow.com/questions/23758704/asp-net-sessionid-vs-aspxauth-why-do-we-need-both-of-th ...

  6. [bzoj5404]party

    https://zybuluo.com/ysner/note/1240918 题面 这题面不好概括啊 解析 \(5pts\)算法 既然\(q=0\),打上文件输入输出即可. 当然不开够空间且不特判的小 ...

  7. shell脚本-数组

    shell脚本-数组 数组 变量:存储单个元素的内存空间. 数组:存储多个元素的连续的内存空间,相当于多个变量的集合. 数组索引:编号从0开始,属于数值索引.索引可支持使用自定义的格式,而不仅是数值格 ...

  8. Mobile

    模块===包   传统开发:整个网页我们写了一个js文件,所有的特效都写在里面了. 缺点:耦合度太高,代码关联性太强,不便于后期维护,会造成全局污染. 发生的请求次数过多,依赖模糊,难于维护. 以上都 ...

  9. BZOJ 2300凸包+离线

    思路: 倒着加显然吧  动态维护这个凸包就好了 //By SiriusRen #include <bits/stdc++.h> using namespace std; ; int n,m ...

  10. applicationContext.xml配置AOP切面编程

    Computer.java package com.wh.aop2; public class Computer { public void play01(){ System.out.println( ...