• PXE自动化部署


    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源:

    制作应答文件

      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秒后执行安装程序
  • 相关阅读:
    学习笔记81—matlab通过界面按钮查看回调函数
    学习笔记80—火狐设置
    学习笔记79—几个典型的距离
    学习笔记78—三大统计相关系数:Pearson、Spearman秩相关系数、kendall等级相关系数
    Xcode7修改模块生成网络权限(ATS配置)
    关于解决“No matching provisioning profiles found”问题-ios
    There was a problem parsing the package(android)
    SDK does not contain any platforms. error (android)
    Objective-C中的instancetype与id的区别
    iOS动画编程
  • 原文地址:https://www.cnblogs.com/Justin0717/p/11858978.html
Copyright © 2020-2023  润新知