PXE

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PXE相关的知识,希望对你有一定的参考价值。

下面介绍的是PXE、cobbler。


一、PXE ----------预执行安装环境

1、PXE基础

pxe过程:DHCP----> TFTP------->HTTP/FTP/NFS

裸机通过RARP找DHCP,DHCP通过next-server找到tftp,TFTP再经过菜单找http/ftp/nfs。

DHCP:提供临时IP地址,指明加载启动文件的TFTP。67、68/udp。

TFTP:提供引导文件syslinux;提供一个Linux内核及initrd.img;提供一个安装时使用的菜单。

HTTP/FTP/NFS:提供yum仓库;提供kickstart配置文件。


2、DHCP服务器配置

安装dhcp。


DHCP的主配置文件:/etc/dhcp/dhcpd.conf

  default-lease-time  3600;

  max-leaset-time     7200;

  options domain-name "ysu.com";

  options routers 172.16.0.1;

  options domain-name-servers 172.16.0.1, 222.222.222.222;

  subnet NETWORK_ADDRESS netmask SUBNET_MASK {

    range START_ADDRESS END_ADDRESS;

    next-server TFTP_SERVER_ADDRESS;

    filename "pxelinux.0"; //,初始化引导文件,一般不变 

  }


例:

  default-lease-time  3600;

  max-lease-time      7200;

  subnet 172.16.0.0 netmask 255.255.0.0 {

    option routers   172.16.72.1; //可为本机

    option domain-name   "ysu.com";

    option domain-name-servers 172.16.72.1;

    range 172.16.254.200  172.16.254.220;

    filename  "pxelinux.0"; //初始化引导文件

    next-server   172.16.72.1; //可为本机

  }


3、TFTP服务器配置

安装tftp-server、tftp、syslinux。


TFTP文档:/var/lib/tftpboot ---------centos-6

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

# cp /usr/share/syslinux/{chain.c32,mboot.c32,menu.c32,memdisk} /var/lib/tftpboot

# cp /mnt/cdrom/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot

# mkdir /var/lib/tftpboot/pxelinux.cfg

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

  default menu.c32

  timeout 30

  MENU TITLE CentOS 7.2 1511 PXE Menu //显示的标题

  LABEL linux //随意

  MENU LABEL Install CentOS 7.2 1511 for x86_64 //安装提示

  KERNEL  vmlinuz

  APPEND  initrd=initrd.img inst.repo=http://172.16.72.3/centos

  

  LABEL linux antoinst //随意

  MENU LABEL Auto Install CentOS 7.2 1511 for x86_64 //显示菜单

  KERNEL  vmlinuz

  APPEND  initrd=initrd.img inst.repo=http://172.16.72.3/centos ks=http://172.16.72.3/kickstarts/centos7-ks.cfg //指明ks自动安装


TFTP文档:/var/lib/tftpboot ---------centos-7

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

# cp /mnt/cdrom/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot //注意改变

# cp /mnt/cdrom/isolinux/{boot.msg,splash.jpg,vesamenu.c32} /var/lib/tftpboot //可选图形化界面

# mkdir /var/lib/tftpboot/pxelinux.cfg

# cp /mnt/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default //复制


配置文件/var/lib/tftpboot/pxelinux.cfg/default:(添加)

  label autoinst

  menu label ^Auto install CentOS 6.7

  menu default

  kernel vmlinuz

  append initrd=initrd.img ks=http://172.16.67.1/kickstarts/centos6-ks.cfg //提供自动安装ks文件


4、HTTP

安装httpd。



二、cobbler

1、cobbler基础

cobbler三大核心组件:distros、profiles、systems。

distros:kernel、initrd。

profiles:distros + kickstart file + yum repository。

systems:profiles + IP + MAC。


2、cobbler配置

安装cobbler、dhcp、bind、httpd、rsync(xinetd)、syslinux2。


运行环境:/etc/cobbler/settings

  server: 172.16.67.1

  next_server: 172.16.67.1

  default_password_crypted: "$6$salt$Encrypted_password //可复制/etc/shadow


cobbler命令:

# cobbler --help //帮助

# cobbler check //检测运行环境是否准备好


3、cobbler的PXE

Distro:

  # cobbler distro [add|list|remove|edit]...

  # cobbler import --name="DISTRO_NAME" --path="IMAGES_PATH"


Profile:

  # cobbler profile add --name="PROFILE_NAME" --distro="DISTRO_NAME" --kickstart=/var/lib/cobbler/kickstart/KICKSTART_FILE


重启、载入:

# service cobblerd start

# cobbler sync


例:

# cobbler import --name=CentOS-7-x86_64 --path=/mnt/cdrom --kickstart=/var/lib/cobbler/kickstarts/centos6-common-ks.cfg //common为自己mv的

# cobbler profile add --name=CentOS-7-x86_64-minimal --distro=CentOS-7-x86_64 --kickstart=/var/lib/cobbler/kickstarts/centos7-minimal-ks.cfg // minimal为自己mv的


# cobbler import --name="mirror" --path="/var/www/cobbler/ks_mirror" 

# ln -s /var/www/cobbler/ks_mirror/CentOS-7-x86_64 /var/www/cobbler/ks_mirror/7 //适应版本更换

  修改ks的URL实现:

  url --url="http://172.16.67.1/cobbler/ks_mirror/7"


4、cobbler-web

# yum -y install cobbller-web

# vi /etc/cobbler/modules.conf -----添加

  [authentication]

  module = authn_configfile


  [authorization]

  module = authz_allowall

# htdigest /etc/cobbler/user.digest "Cobbler" cobbler //自定义Cobbler

# service cobblerd restart

# service htttpd restart


以上是关于PXE的主要内容,如果未能解决你的问题,请参考以下文章

PXE基础装机环境 案例2:配置并验证DHCP服务 案例3:配置PXE引导

PXE基础装机环境

PXE实现无人值守安装

利用PXE自动安装

PXE高效批量网络装机实现Kickstart无人值守安装

PXE自动安装Linux系统