linux-DHCP服务PXE网络批量自动装机

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux-DHCP服务PXE网络批量自动装机相关的知识,希望对你有一定的参考价值。

  虚拟机A

    1. 将防火墙状态设置为trusted

  2.SELinux当前修改为permissive

  3.SELinux永久状态修改为permissive

    4.清空Yum缓存,检查Yum是否可用


    虚拟机B

    1. 将防火墙状态设置为trusted

  2.SELinux当前修改为permissive

  3.SELinux永久状态修改为permissive

    4.清空Yum缓存,检查Yum是否可用


    /etc/selinux/config (永久状态配置文件)


------------------------------------------------------------------------------------------


    完成虚拟机访问外网    


1.在真机实现,桥设备的创建(br0)

[[email protected] /]# systemctl  status  NetworkManager(图形的)

[[email protected] /]# systemctl  status  network (命令行)

[[email protected] /]# systemctl  stop    NetworkManager(图形的)

[[email protected] /]# systemctl  status  network (命令行)


    vim /etc/sysconfig/network-scripts/ifcfg-br0


    DEVICE=br0              #设备名

    TYPE=Bridge             #设备类型

    BOOTPROTO=none          #手工配置IP地址    

    ONBOOT=yes              #开机自起动

    IPADDR=172.40.50.114 

    NETMASK=255.255.255.0

    GATEWAY=172.40.50.1


2.让真机的enp2s0真实网卡,连接br0,追加写入

    vim /etc/sysconfig/network-scripts/ifcfg-enp2s0

        BRIDGE=br0


3.重起network 


4.虚拟机有一张网卡,选择br0桥设备

-----------------------------------------------------------------------------------------


 部署DHCP服务器

一个局域网只能有一个DHCP服务器,否则会造成网络瘫痪


Dynamic Host Configuration Protocol

   – 动态主机配置协议,由 IETF(Internet 网络工程师任务小组)组织制定,用来简化主机地址分配管理


主要分配以下入网参数

   –IP地址/子网掩码/广播地址

   – 默认网关地址、DNS服务器地址

 

DHCP地址分配的四次会话

 – DISCOVERY --> OFFER --> REQUEST -->ACK

  


 前提,虚拟机不要桥接真实网络


虚拟机A:

 1.装软件包 dhcp

 2.配置文件 /etc/dhcp/dhcpd.conf

[[email protected] /]# vim /etc/dhcp/dhcpd.conf 

    末行:r  /usr/share/doc/dhcp*/dhcpd.conf.example  #读入其他文件


  subnet  192.168.4.0 netmask 255.255.255.0  {    #分配的网段

    range 192.168.4.100  192.168.4.200;       #分配的IP地址范围

    option domain-name-servers  8.8.8.8;      #分配DNS

    option routers  192.168.4.254;            #分配网关

    default-lease-time 600;                #IP地址默认租用时间

    max-lease-time 7200;                   #IP地址租用最大时间

   }


 3.起服务 dhcpd

[[email protected] /]# systemctl  restart   dhcpd

[[email protected] /]# systemctl  enable   dhcpd

[[email protected] ~]# nmcli connection modify eth0 ipv4.method auto      #将IP设为自动获取

[[email protected] ~]# nmcli connection up eth0      #激活

成功激活的连接(D-Bus 激活路径:/org/freedesktop/NetworkManager/ActiveConnection/111)




补充:route -n 查看网关

----------------------------------------------------------------------------------------

虚拟机A上:


 杀死KVM虚拟化中的dnsmasq,dnsmasq会提供DHCP服务,会有冲突


[[email protected] /]# netstat -anptu | grep :67

 udp        0      0 0.0.0.0:67               0.0.0.0:*                           8051/dhcpd          

 udp        0      0 0.0.0.0:67              0.0.0.0:*                           2392/dnsmasq 

       

[[email protected] /]# killall dnsmasq

[[email protected] /]# netstat -anptu | grep :67


----------------------------------------------------------------------------------------

PXE,Pre-boot eXecution Environment

  – 预启动执行环境,在操作系统之前运行

  – 可用于远程安装

工作模式

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

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



----------------------------------------------------------------------------------------

PXE网络装机服务器

 DHCP:提供IP地址

 TFTP(简单的文本传输协议):提供众多的引导文件,硬件

 FTP:提供众多的RPM包

DHCP、TFTP、FTP都搭建在一个服务器上


一、构建DHCP服务

1.指定下一个服务器IP的地址

[[email protected] /]# 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 8.8.8.8;

   option routers 192.168.4.254;

   default-lease-time 600;

   max-lease-time 7200;

   next-server 192.168.4.7;  #指定下一个服务器IP地址

   filename "pxelinux.0";   #指定网卡引导文件,文件名称

}


2.重起dhcpd服务

  

   pxelinux.0:网卡引导文件(安装说明书),二进制文件

   

      需要安装一个软件,就可以生成pxelinux.0

-------------------------------------------------------------------------------------------

二、搭建TFTP服务


      TFTP:简单的文件传输协议     端口:69 


           服务端程序:tftp-server   提供tftp服务的软件包

           服务名:tftp

           默认共享路径: /var/lib/tftpboot


  1.安装tftp-server

  2.启动tftp服务,并设置为开机自起

  

  3.部署pxelinux.0文件

  # yum   provides  */pxelinux.0    #查询仓库中哪一个包产生该文件

  # yum  -y install syslinux


  # rpm -ql syslinux                #查询软件包的安装清单


  # rpm -ql syslinux | grep pxelinux.0    #找到pxelinux.0的路径


  # cp /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot/   #复制到共享目录下


  # ls /var/lib/tftpboot/

-------------------------------------------------------------------------------------------

                     加载菜单文件default 

pxelinux.0-------------》/var/lib/tftpboot/pxelinux.cfg/default


  4.部署default默认的菜单文件

  # mkdir  /var/lib/tftpboot/pxelinux.cfg    #创建放置default文件的目录


  # mount /dev/cdrom /mnt/     #先确认虚拟机是否放入光盘文件


  # cp /mnt/isolinux/isolinux.cfg      /var/lib/tftpboot/pxelinux.cfg/default   #“isolinux.cfg”为光盘的菜单文件


  # ls -l /var/lib/tftpboot/pxelinux.cfg/default


  # chmod 644 /var/lib/tftpboot/pxelinux.cfg/default      #修改权限,方便修改内容,给这个目录的所有者附加写的文件


  # ls -l /var/lib/tftpboot/pxelinux.cfg/default


  5.部署 图形的模块 vesamenu.c32

  # ls /mnt/isolinux/


  # cp /mnt/isolinux/vesamenu.c32  /var/lib/tftpboot/


  # ls /var/lib/tftpboot/


   6.修改菜单文件/var/lib/tftpboot/pxelinux.cfg/default


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

   ......

  11  menu title NSD1709 PXE Server !

   ......

  61  label linux

  62    menu label ^Install RHEL7  #“^”表示快捷键I就可以跳转到此项,可以去掉

  63    kernel vmlinuz     #启动内核(不是Linux的内核),总管所有的硬件 

  64    append initrd=initrd.img   #驱动程序

后面可以删除掉


   7.部署启动内核与驱动程序

  #cp /mnt/isolinux/initrd.img  /mnt/isolinux/vmlinuz  /var/lib/tftpboot/      #同时拷贝两个文件


  # ls /var/lib/tftpboot/


  initrd.img  pxelinux.cfg  vmlinuz

  pxelinux.0  vesamenu.c32


---------------------------------------------------------------------------------------

    pxelinux.0-------》/var/lib/tftpboot/pxelinux.cfg/default

    default------》vesamenu.c32-----》vmlinuz、initrd.img

---------------------------------------------------------------------------------------


 三、FTP服务,传输RPM包


  1.搭建vsftpd服务,共享光盘所有内容

  2.安装vsftpd软件

  3.设置vsftpd服务启动,设置为开机自起动

  4.共享光盘所有内容

 [[email protected] /]# mkdir /var/ftp/rhel7

 [[email protected] /]# mount /dev/cdrom   /var/ftp/rhel7


 [[email protected] /]# ls /var/ftp/rhel7


 [[email protected] /]# firefox  ftp://192.168.4.7/rhel7

--------------------------------------------------------------------------------

 四、无人值守安装,生成应答文件

    1.安装图形生成应答文件程序:system-config-kickstart


    2.运行图形程序:system-config-kickstart


    读取本地Yum仓库信息,要求Yum仓库客户端配置文件,仓库标识为


       [development]  

       


    3.运行图形程序:system-config-kickstart    生成应答文件ks.cfg


  [[email protected] /]# ls  /root/ks.cfg 

  [[email protected] /]# vim  /root/ks.cfg 


     4.搭建vsftpd服务,共享应答文件


   [[email protected] /]# cp /root/ks.cfg  /var/ftp/

   [[email protected] /]# ls /var/ftp/

   ks.cfg  pub  rhel7



-------------------------------------------------------------------------------------------

  五、通过菜单指定ks.cfg应答文件


[[email protected] /]# vim  /var/lib/tftpboot/pxelinux.cfg/default 


 61 label linux

 62   menu label Install RHEL7

 63   kernel vmlinuz

 64   append initrd=initrd.img  ks=ftp://192.168.4.7/ks.cfg



----------------------------------------------------------------------------------------

 总结:

       DHCP------>IP地址、next-server、filename

       tftp------>pxelinux.0、default

       default---->vesamenu.c32、vmlinuz、initrd.img、ks.cfg

       ks.cfg----> url="ftp://192.168.4.7/rhel7"

以上是关于linux-DHCP服务PXE网络批量自动装机的主要内容,如果未能解决你的问题,请参考以下文章

PXE高效批量网络自动装机

部署PXE高效批量网络装机并实现Kickstart无人值守自动安装

批量装机环境,配置PXE引导,kickstart自动应答

PXE 网络装机——实现无人值守批量装机

PXE高效批量网络装机

详解CentOS 7中PXE高效批量网络装机与kickstart无人值守技术