批量装机环境 、 配置PXE引导 、 kickstart自动应答 、 Cobbler装机平台

批量装机环境

部署DHCP服务器

Dynamic Host Configuration Protocol

  • 动态主机配置协议,用来简化主机地址分配管理

  • 主要分配以下入网参数 IP地址 子网掩码 广播地址 默认网关 DNS服务器地址

  • DHCP 地址分配的四次会话 discover->offer->request->ack

  • 服务端基本概念 租期:允许客户机租用IP地址的时间期限,单位为秒 作用域:分配给客户机的IP地址所在网段 地址池:用来动态分配的IP地址的范围

虚拟机A安装 DHCP

yum -y install dhcp

配置dhcpd地址分配服务

装软件包 dhcp 配置 /etc/dhcp/dhcpd.conf 服务 dhcpd vim /etc/dhcp/dhcpd.conf

    
    subnet 192.168.4.0 netmask 255.255.255.0 {
      range 192.168.4.100 192.168.4.200;
      option domain-name-servers 192.168.4.7;
      option routers 192.168.4.254;
      default-lease-time 600;
      max-lease-time 7200;
    }
    
    
    
    subnet 192.168.4.0 netmask 255.255.255.0 { // 声明网段
        range 192.168.4.100 192.168.4.200; //IP范围
        option domain-name-servers 192.168.4.7; #分配的DNS服务器
      option routers 192.168.4.254;# 分配的网关
      default-lease-time 600;#默认的租期
      max-lease-time 7200;#最大租期
      
        next-server 192.168.4.7;//指定PXE服务器
        filename "pxelinux.0";//引导文件名
    }
    
    netstat -antpu | grep dhcpd
    udp 0 0 0.0.0.0:67 0.0.0.0:*  8380/dhcpd

网络装机

规模化 自动化 远程实现

  • PXE网络,预启动执行环境,在操作系统之前运行

  • PXE client 集成在网卡的启动芯片中

  • 当计算机引导时,从网卡芯片中把PXE client调入内存执行,获取PXE server配置、显示菜单,根据用户选择将远程引导程序下载到本机运行

PXE client 客户端需要支持

  • 网卡芯片必须支持PXE协议

  • 主板支持从网卡启动

PXE server 服务端需要的服务

  • DHCP服务,分配IP地址,定位引导程序 分配IP地址,提示客户端下个服务TFTP,filename

  • TFTP服务,提供引导程序下载 简单的文件传输协议 将引导文件pxelinux.0传给客户端 客户端需读取 /var/lib/tftpboot/pxelinux.cfg/default # 菜单文件 客户端需加载图形模块 背景图片 读秒 内核 驱动

  • HTTP服务或PXE server(或FTP/NFS),提供yum安装源

提供光盘的内容,就可以装系统

搭建网络服务器

  • DHCP服务器构建,提供PXE网络装机服务 vim /etc/dhcp/dhcpd.conf

    
    subnet 192.168.4.0 netmask 255.255.255.0 {
      range 192.168.4.100 192.168.4.200;
      option domain-name-servers 192.168.4.7;
      option routers 192.168.4.254;
      default-lease-time 600;
      max-lease-time 7200;
      next-server 192.168.4.7; # 下个服务地址
      filename "pxelinux.0"; # 指定网卡引导文件名称(安装说明书,二进制文件 安装一个软件即可获得此文件,人写不出来的)
    }

systemctl restart dhcp

  • 构建TFTP服务 默认端口 69 默认tftp共享数据的地方 /var/lib/tftpboot

1、安装软件包 yum -y install tftp-server

 

systemctl restart tftp  

2、部署pxelinux.0 文件 查询哪个包,产生pxelinux.0这个文件 yum provides */pxelinux.0 yum -y install syslinux rpm -ql syslinux | grep pxelinux.0

 

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

3、部署菜单文件 默认菜单文件的存放位置 /var/lib/tftpboot/pxelinux.cfg/default ls /dvd (光盘里有菜单文件)

mkdir /var/lib/tftpboot/pxelinux.cfg  
cp /dvd/isolinux/islinux.cfg /var/lib/tftpboot/pxelinux.cfg/default  
ls /var/lib/tftpboot/pxelinux.cfg  

4、部署菜单文件需要的程序 图形模块与背景图片(也在光盘中) cp /dvd/isolinux/vesamenu.c32 /dvd/isolinux/splash.png /var/lib/tftpboot/ ls /var/lib/tftpboot/

5、部署启动的内核(vmlinuz)和驱动程序(initrd.img) cp /dvd/isolinux/vmlinuz /dvd/isolinux/initrd.img /var/lib/tftpboot/ ls /var/lib/tftpboot/

6、修改菜单文件 vim /var/lib/tftpboot/pxelinux.cfg/default :set nu # 显示行号

 


    1 default vesamenu.c32 # 默认加载图形模块
    2 timeout 600 # 读秒时间 1/10秒 60s
    4 display boot.msg # 此引导文件有与没有不影响
    10 menu background splash.png # 背景图片
    11 menu title CentOS 7 #显示的菜单标题
    
    menu label 就是选项
    今天只要一个选项
    65以下 全部干掉
    64行 initrd.img 之后的全部干掉
    
    在kernel vmlinuz 上面添加
    menu default # 读秒结束后自动选择
  • 初步测试 1、将所需服务进行重启 systemctl restart dhcpd systemctl restart tftp

2、排除DHCP的干扰(关闭vmware本身的DHCP)

编辑–》虚拟网络适配器-》有个选项DHCP 去掉勾即可

3、建立测试机器 新建虚拟机(内存给2G) 修改测试机器的网络类型 使其与PXEserver在一个网络中

  • 构建web服务器 1、利用web服务共享光盘的内容 yum -y install httpd mkdir /var/www/html/centos mount /dev/cdrom /var/www/html/centos

    systemctl restart httpd

    firefox 192.168.4.7/centos elinks -dump 192.168.4.7/centos

  • 部署无人值守安装,生成应答文件 yum -y install system-config-kickstart

 


    最小化安装:
    yum -y install ghostscript-chinese-zh_CN
    yum -y install xorg*
    yum -y install system-config-kickstart
    reboot

system-config-kickstart 图形的包

软件包选择被禁止:

 

需要本地yum仓库的支持,要求指向光盘的仓库,标识必须为【development】

vim /etc/yum.repos.d/haha.repo

 

	[development]
	name=describe dawei
	baseurl=file:///dvd
	enabled=1
	gpgcheck=0

system-config-kickstart

查看应答文件 ks.cfg ls /var/www/html/

  • 修改菜单文件指定获取应答文件

vim /var/lib/tftpboot/pxelinux.cfg/default

 

	在最后一行 后面 加上
	ks=http://192.168.4.7/ks.cfg
	
	
	label linux
	  menu label ^Install CentOS 7
	  menu default
	  kernel vmlinuz
	  append initrd=initrd.img ks=http://192.168.4.7/ks.cfg

总结

 

DHCP服务 --》IP地址、next-server、filename
tftp服务 --》 pxelinux.0
pxelinux.0 --> 读取 /var/lib/tftpboot/pxelinux.cfg/default #菜单文件
default --》 图形模块、背景图片、读秒、内核、驱动、指定获取应答文件
应答文件--》软件包如何获得、装系统的各种选择

测试验证

 

直接新建虚拟机即可

Cobbler装机平台

评论