安装前提

    systemctl disable firewalld       centos7开机不自启防火墙
    systemctl stop firewalld          centos7停止防火墙
    service iptables stop             centos6关闭iptables
    service iptables enable           centos6开机不自启iptables
    sed -i "s/SELINUX=SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config    修改selinux配置文件
    reboot   重启生效

安装过程

安装HTTP服务

yum install http
cd /var/www/html/
mkdir centos/{6,7}/os/x86_64/
mount /dev/sr0 /var/www/html/centos/7/os/x86_64/    挂载centos7的光盘
mount /dev/sr1 /var/www/html/centos/6/os/x86_64/    挂载centos6的光盘
mkdir ksdir

kickstart

安装kickstart

yum install system-config-kickstart 

启动kickstart

`system-config-kickstart    以图形化界面来制作应答文件 `

图形化界面如下:

  • basic configuration
    语言
    键盘布局
    时区
    root口令,输入两次
    架构默认
    安装完系统之后重启
    以字符界面安装,默认是图形化
  • installation Method
    选择HTTP安装
    HTTP Server:192.168.146.200
    HTTP Directory: /centos/7
    我们搭建的http服务器的ip和安装源的路径
    Boot Loader Options
  • install new boot loader
    是否给GRUB设置口令
    安装在MBR中
    是否设置内核参数
    partiton Information
    清除BOOT Loader 信息
    清除已存在的分区
    清除已有的磁盘标签
    然后进行正常分区
  • Network Configuration 添加网卡,获取ip地址的方式,网卡名称
  • Authertication 默认
  • Firewall Configuration 关闭防火墙 和selinux
  • DIsplay Configuration 默认
  • Package Selection 要安装的程序包
  • Pre-installation Script 安装前脚本
  • Post-Installation Script 安装后脚本

点击左上角的File,选择保存路径,至此,kickstart 文件制作完成
创建kickstart文件的方式有两种

  1. 直接手动编辑,依照某模板修改
    在我们自己手动安装完系统之后,系统会根据当前安装系统中手动选择的选项,自动生成一个模板文件,存放在root目录下anaconda-ks.cfg文件模板

  2. 还有一种就是上面的方法,通过system-config-kickstart工具制作

将文件复制在/var/www/html/ksdir/目录下

    如果是修改模板文件,在修改完成后,最好检查一下语法错误
    ksvalidator  /path/to/kickstart_file      检查kickstart文件是否错误

搭建DHCP

前提:

  • 仅主机模式,
  • 禁止在桥接模式
  • 关闭vm虚拟编辑器dhcp
    yum install dhcpd                 安装DHCP服务
    vim /etc/dhcp/dhcpd.conf     修改DHCP配置文件
    **默认dhcp配置文件里面是空的,我们要借助dhcp示例文件**
    cp /usr/share//doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
    配置文件如下
    option domain-name "magedu.com";     搜索域,在网络中获取DHCP服务器默认设置的搜索域名
    option domain-name-servers 114.114.114.114, 223.5.5.5;  DNS服务器
    default-lease-time 86400 ;      默认租期时间,单位:秒
    max-lease-time 864000;      最大租期时间,单位:秒
    subnet 192.168.146.0 netmask 255.255.255.0 {
    range 192.168.146.10 192.168.146.100;   分配的IP范围
    option routers 192.168.146.254;     网关
    next-server 192.168.146.3;    指明引导文件的服务器IP
    filename "pxelinux.0";     指明引导文件
    }
    启动服务
    systemctl start dhcpd

    搭建TFTP服务器

    功能:

    netx-server 192.168.146.3 指明tftp服务器的IP
    通过DHCP服务器指定TFTP服务器的ip地址,进而我们安装的服务器可以连接到TFTP服务器,下载我们实现自动安装的必要文件
    UDP:69

    安装

    yum install tftp-server
    systemctl restart tftp

    配置文件“

    /var/lib/tftpboot tftp的工作目录,只要将文件放在该目录下,就可以提供客户端的下载

    准备启动文件

    安装引导文件 pxelinux.0
    yum install syslinux

将pxelinux.0文件复制到tftp服务器的工作目录

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

制作启动菜单

cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot/   更加简洁的启动菜单

复制启动相关文件

    cp /mnt/isolinux/vmlinuz /var/lib/tftpboot/      
    cp /mnt/isolinux/initrd.img  /var/lib/tftpboot/    

制作光盘ISO

mkdir /var/lib/tftpboot/pexlinux.cfg

cp /mnt/isolinux/isolinux.cfg   /var/lib/tftpboot/pxelinux.cfg/default
vim  /var/lib/tftpboot/pxelinux.cfg/default

default修改文件如下

default menu.c32  
timeout 60     
menu title Auto Install centos

label Centos7
    menu label ^Install CentOS_Mini 7
    kernel vmlinuz
    append initrd=initrd.img ks=http://192.168.146.3/ksdir/ks7_mini.cfg

label local
 menu default
 menu label Boot from ^local drive
 localboot 0xffff

完成
创建一个新的虚拟机
当出现下方图片时,快速按下ESC键
PXE实现自动化安装系统_第1张图片
选择通过网络安装
PXE实现自动化安装系统_第2张图片
当出现这个菜单,说明实验成功了
PXE实现自动化安装系统_第3张图片
选择要安装的系统,进行安装。大功告成

进行多系统安装

想要进行多系统安装,我们只要修改/var/lib/tftpboot/pxelinux.cfg/default 文件
再添加lable
如添加centos6

    label Centos6
        menu label ^Install CentOS_Mini 6
        kernel vmlinuz    需要指明具体路径
        append initrd=initrd.img    指明具体路径 ks=http://192.168.146.3/ksdir/ks6_mini.cfg

注意:
    centos7 用centos7的内核文件和驱动程序文件
    centos6 用centos6的内核文件和驱动程序文件
    制作好centos6的应答文件

如有错误和问题,请评论。渣渣一个,请大佬指正!!!!