PXE

  • 预启动执行环境,基于tftp条件下完成基于网络的自动化部署软件
  • 原理:
    1. 网卡利用自身的tftp 请求dhcp 服务器获取ip和一个pxelinux.0的地址
    1. 在给定的tftp目录下存有ks的配置文件,指定开机后从哪里获取内核、initrd和系统光盘包文件,
    1. 一般设定的网络地址下载系统文件然后执行安装,安装参数也会在填写的网络地址中存放,即ks.cfg文件
  • ks.cfg应答文件一般由对应系统可以生成,需要安装对应的包,文件中包含了安装需要的文件和执行前后脚本用户配置等

    自动化部署centos7实战

    条件

  • selinux firewall :enable
  • dhcpd,httpd:192.168.47.25 tftp-server:192.168.47.26 安装和配置完成
  • 下载安装 yum -y install syslinux

    配置yum源:

  • mkdir /centos/7/isos/x86_64 -pv 在web服务器/var/www/html下创建文件夹,
  • mount -o /dev/sr0 /var/www/html/centos/7/isos/x86_64/(光盘文件挂载到这里)
  • http://192.168.47.25/centos/7/isos/x86_64/,访问光盘看是否能够访问

    制作应答文件

    1. yum install kicstart
    1. 利用cento7的kickstart 程序 执行system-config-kickstart 在图形界面下定制自己所需要的配置生成ks.cfg文件
    1. 应答文件需要指定yum源位置为前面web的光盘挂载的文件目录
    1. 将应答文件放置到网站根目录下,cp -p ks.cfg /var/www/html/
    1. http://192.168.47.25/ks.cfg 查看是否能够访问

      dhcp 配置

    1. 复制模板文件:cp /user/share/doc/dhcp-4.3.5/dhcpd.config.example,到/etc/dhcp/下改名成为配置文件dhcpd.config
    1. subnet中加入tftp的pxelinux下载地址:next-server 192.168.47.26 filename"pxelinux.0"
    1. 完成重启服务

      tftp-server配置

  • tftp目录文件夹: /var/lib/tftpboot
    1. 在tftp服务目录下创建一个pxelinux.cfg的文件夹:mkdir pxelinux.cfg( /var/lib/tftpboot/下)
    1. 复制 /usr/share/syslinux/{pxelinux.0,menu.c32} 到tftp服务器的文件目录下
    1. 将kernel和initrd.img 文件从光驱复制到文件目录下(同上面放置yum源一样挂载光驱然后拉取isolinux文件夹中的这两个文件)
    1. 将创建命名default后放在目录文件夹下pxelinux.cfg文件夹下
    1. 完成后文件目录树为:/var/lib/tftpboot/下 包含四个文件:initrd.img、vmlinux、menu.c32 、pxelinux.0 一个文件夹:pxelinux.cfg 内有一个default文件

      配置安装菜单

  • 编辑tftp目录下pxelinux.cfg的default
    1. defualt menu.c32
    1. timeout 20
    1. menu title install centos7
    1. label Install ins7
    1. kernel vmlinuz
    1. append initrd=initrd.img ks=http://192.168.47.25/ks.cfg

      最后检查

  1. dhcp服务正常保障能够获取ip
  2. tftp服务正常保障能够读取文件
  3. http服务正常保障能够下载yum源和应答文件
  4. 完成检查后新建一个centos7的虚拟机开机,正常的话就会加载菜单,2秒后执行安装程序

PXE自动化部署的更多相关文章

  1. Cobbler自动化部署最佳实践

    第1章 Cobbler自动化部署最佳实践 运维自动化在生产环境中占据着举足轻重的地位,尤其是面对几百台,几千台甚至几万台的服务器时,仅仅是安装操作系统,如果不通过自动化来完成,根本是不可想象的. 面对 ...

  2. MySQL主从复制原理及配置详细过程以及主从复制集群自动化部署的实现

    一.复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重 ...

  3. python+paramiko库+svn写的自动化部署脚本

    第一篇博文 直接开门见山的说了. 这是件什么事?:每次部署都是复制本地的文件粘贴到服务器端,因为路径复杂,所以费时且手工容易出漏洞. 一直在想有什么办法可以解决这种,因为以前在微软的一个牛人同事做过一 ...

  4. ASP.NET MVC 从零开始 - 自动化部署(其二)

    这篇文章是从我的 github 博客 http://lxconan.github.io 导入的. 这是这个系列的第五篇了,前四篇请参见: ASP.NET MVC 从零开始 – Create and R ...

  5. ASP.NET MVC 从零开始 - 自动化部署(其一)

    本文是从我的 github 博客 http://lxconan.github.io 导入的. 这是这个系列的第四篇了,前三篇请参见: ASP.NET MVC 从零开始 – Create and Run ...

  6. 比Ansible更吊的自动化运维工具,自动化统一安装部署_自动化部署udeploy 1.0

    新增功能: 2015-03-11 除pass(备份与更新)与start(启动服务)外,实现一切自动化. 注:pass与start设为业务类,由于各类业务不同,所以无法实现自动化.同类业务除外,如更新的 ...

  7. 比Ansible更吊的自动化运维工具,自动化统一安装部署自动化部署udeploy 1.0 版本发布

    新增功能: 逻辑与业务分离,完美实现逻辑与业务分离,业务实现统一shell脚本开发,由框架统一调用. 并发多线程部署,不管多少台服务器,多少个服务,同时发起线程进行更新.部署.启动. 提高list规则 ...

  8. jenkins+git+maven搭建自动化部署项目环境

    简介    折腾了两个晚上,趁着今晚比较有空,把jenkins+git+maven搭建自动化部署项目环境搭建的过程记录一下,这里我把github作为git的远程仓库(https://github.co ...

  9. 使用Cargo实现自动化部署

    Cargo是一组帮助用户操作Web容器的工具,它能帮助用户实现自动化部署,而且它几乎支持所有的Web容器,如Tomcat.JBoss.Jetty和Glassfish.Cargo通过cargo-mave ...

随机推荐

  1. Jenkins初次启动卡住问题解决

    Jenkins在初次使用时, 一直卡住, 无论如何也不出现输入用户名密码. 忘记截图, 下次出现更新图示. 解决方案: 需要你进入Jenkins的工作目录,打开 hudson.model.Update ...

  2. 阿里JAVA诊断工具Arthas的初步使用

    Arthas 是Alibaba开源的Java诊断工具,主要解决以下问题: 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 我改的代码为什么没有执行到?难道是我没 comm ...

  3. 数据中心网络架构的问题与演进 — Overlay 网络

    目录 文章目录 目录 前文列表 数据中心网络架构演进回顾 Overlay 网络 Overlay 网络的优势 基于 VxLAN Overlay 的 Spine-Leaf 网络架构 参考文章 前文列表 & ...

  4. appium+python等待方式使用

    背景: 首先,由于一个网速和手机性能以及服务器反应时间等等的原因,不可能导致我们点击了某一个元素之后,它所要链接的页面马上弹出来可以进行下一步操作.所以我们需要一种等待方式,直至链接的页面跳出来之后再 ...

  5. CTF—攻防练习之HTTP—SQL注入(SSI注入)

    主机:192.168.32.152 靶机:192.168.32.161 ssI是赋予html静态页面的动态效果,通过ssi执行命令,返回对应的结果,若在网站目录中发现了.stm .shtm .shtm ...

  6. DataTable.Select筛选过滤数据返回DataRow[]转为DataTable添加到DataSet

    问题还原,如图所示,我们要筛选所有SHDP 为北京翠微KR的数据. 1. 筛选DataTable微软为我们提供了一个方法DataTable.Select(),其用法如下: 1)  Select()—— ...

  7. 流程控制,循环结构,for,while循环

    '''1.变量名命名规范 -- 1.只能由数字.字母 及 _ 组成 -- 2.不能以数字开头 -- 3.不能与系统关键字重名 -- 4._开头有特殊含义 -- 5.__开头__结尾的变量,魔法变量 - ...

  8. 【AMAD】django-model-utils -- Django model使用的mixin和utils

    动机 简介 个人评分 动机 为django model系统提供一些可重用的mixin和utils. 简介 django-model-utils1为Django Model提供了下嘛几种分类的utils ...

  9. 【Linux开发】linux设备驱动归纳总结(六):2.分享中断号

    linux设备驱动归纳总结(六):2.分享中断号 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ...

  10. 中间消息件之 Solace(一) Solace的简介

    什么是Solace? Solace是一家加拿大注册的公司,总部设在安大略省渥太华. 成立于2001年. 这家公司一直致力于获取信息的艺术和科学,并提供世界上最灵活,最强大的数据移动平台. 背景 在信息 ...