一、 准备工作

  • anaconda程序的运行配置文件 kickstart 文件,root用户家目录下的anaconda.cfg即ks.cfg文件。
  • CentOS6与CentOS7系统镜像文件
  • 软件/工具:httpd 、tftp-server 、dhcp 、syslinux 包

二、 安装软件包/工具,启用

  • yum install Packages { httpd , tftp-server , dhcp , syslinux }
  • 配置dhcpd.conf文件,示范文件地址:/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example
  • 如果在自己实验,网卡选择主机模式,并且关闭DHCP服务
    PXE自动安装CentOS6与CentOS7的实现_第1张图片
```
    subnet 192.168.163.0 netmask 255.255.255.0 {
                    range 192.168.163.40  192.168.163.60;#dhcp服务的ip地址范围
                    option routers 192.168.163.1;#网关
                    filename"pxelinux.0";#文件名写死,固定在tftp空间寻找这一个文件
                    next-server 192.168.163.20;#系统文件提供机器的地址
                    #详细dhcp配置请自行了解
}
```
  • httpd服务使用
    • httpd服务目录地址 /ver/www/html/
      mkdir  -pv  centos/{6,7}  ksdir  
      #kickstart 文件放到 ksdir目录下,方便寻找;
    • 将系统镜像文件分别挂载到 centos/6和7的目录下
      mount /dev/sr0  /var/www/html/centos/6 #挂载7同法
      #导入的系统镜像文件,挂载加 -o loop  比较通用
    • 将所有共享出去的文件权限修改为 644 权限;不然无法获取到安装文件
  • 启动服务

    • 关闭SElinux 修改/etc/selinux/config文件 SELINUX=disabled
    • 关闭防火墙
    service iptables stop
    chkconfig iptables off  #开机不启动
    #centos6方法
    
    systemctl stop firewalld
    systemctl disable firewalld 
    #centos7方法
    • 启动服务
      systemctl enable httpd #开机自动启动http  dhcp  tftp 服务
      systemctl enable dhcpd
      systemctl enable tftp.socket

三、 文件配置

  • kickstart 创建
    • 安装包 system-config-kickstart ,命令system-config-kickstart 打开软件,可以根据自己的需求直接创建kickstart文件。
    • 使用root家目录中的 anaconda.cfg文件修改
  • kickstart文件格式
    简单说明,详情请自行了解
 #version=DEVEL
 auth --enableshadow --passalgo=sha512 #密码加密方式
url --url=http://192.168.163.20/centos/7 #使用什么方式去引导启动
install #安装
text #命令模式安装  可以选择
reboot #安装完,自动重启
selinux --disabled #关闭SElinux
firewall --disabled #关闭防火墙

firstboot --enable #初始化开启
ignoredisk --only-use=sda #选择磁盘  sda

keyboard --vckeymap=us --xlayouts='us' #语言和键盘选择

lang en_US.UTF-8 #文字选择

network  --bootproto=dhcp --device=ens33 --onboot=off --ipv6=auto --activ
ate #网卡设置
network  --hostname=localhost.localdomain #主机名设置

rootpw --iscrypted  xxxxxxx #设置密码  为加密文本

services --disabled="chronyd"

timezone Asia/Shanghai --isUtc --nontp  #时区选择

bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda #分区引导
zerombr  #清除分区
clearpart --all --initlabel #清空磁盘

#磁盘分区
part pv.198 --fstype="lvmpv" --ondisk=sda --size=10240
part /boot --fstype="xfs" --ondisk=sda --size=1024
volgroup centos --pesize=4096 pv.198
logvol /  --fstype="xfs" --size=5120 --name=root --vgname=centos
logvol swap  --fstype="swap" --size=2048 --name=swap --vgname=centos
logvol /app  --fstype="xfs" --size=2048 --name=app --vgname=centos
eula --agreed #同意选项  centos7中必备

%packages #安装的包
@^minimal
@core
kexec-tools
vim-enhanced
%end

%post #安装后运行脚本
rm -f /etc/yum.repos.d/*
cat > /etc/yum.repos.d/base.repo  < /dev/null

%end
  • httpd哪些文件
    PXE自动安装CentOS6与CentOS7的实现_第2张图片
  • 配置tftp中的文件

    • tftp为轻量级共享文件方式,网卡自带集成tftp的客户端
    • 共享目录为:/var/lib/tftpboot
    • 安装syslinux包后,我们要用到/usr/share/syslinux目录下两个的文件
    • 文件全部完成后,注意权限需要 644
cd /var/lib/tftpboot
cp  /usr/share/syslinux/{pxelinux.0,menu.c32} . 
    #将两个文件拷贝过来
        #menu.c32是简单的启动菜单文件 ,启动页面比较简陋
mkdir {6,7}
    #创建系统区分目录,将两个系统的启动文件拷入  vmlinuz   initrd.img
cp /var/www/html/centos/6/isolinux/{vmlinuz,initrd.img}  .
    #拷贝进tfpboot目录
mkdir pxelinux.cfg
    #创建目录,放置菜单的布局配置文件
cp /var/www/html/centos/6/isolinux/isolinux.cfg pxelinux.cfg/default 
    #拷贝进isolinux.cfg目录下,并改名为default 
  • tftp-server哪些文件?
    PXE自动安装CentOS6与CentOS7的实现_第3张图片

  • 镜像里的 isolinux.cfg 文件格式
default menu.c32 #菜单样式文件
timeout 60  #倒计时6s后自动选择默认选项

menu title  PXE CentOS 7 #菜单标题

label desktop
  menu label ^Install MIni CentOS 7 # 选项  ; '^'表示首字母快捷键选择 
  kernel 7/vmlinuz  #内核文件路径
  append initrd=7/initrd.img ks=http://192.168.163.20/ksdir/ks7-mini.cfg
#initrd.img文件路径,和kickstart文件路径

label mini
  menu label Install ^mini CentOS 6
  menu default  #默认选项;进入菜单,光标自动选择该选项
  kernel 6/vmlinuz
  append initrd=6/initrd.img ks=http://192.168.163.20/ksdir/ks6-mini.cfg

label centos6mini
  menu label Install Desktop ^CentOS 6
  kernel 6/vmlinuz
  ppend initrd=6/initrd.img ks=http://192.168.163.20/ksdir/ks6-desktop.cf
g

label local  
#磁盘启动 ;不安装系统时,该项设置成默认选项,不然重复安装系统
  menu label Boot from ^local drive
  localboot 0xffff
menu end

四、 打开需要安装系统的电脑,在一个局域网内,且没有其他DHCP服务器的环境;选择网卡启动------------------>成功
PXE自动安装CentOS6与CentOS7的实现_第4张图片