声明:我们这里用kvm做测验。centos7u3的系统

PXE+kickstart  全自动安装操作系统。

原理图:

pxe.png

注释:图中有错误,vmlinuz文件。抱歉!!各位

客户端寻找dhcp服务器,dhcp服务器来负责客户端的ip分配;

客户端寻找tftp服务器,pxelinux.0引导文件引导vmlinux和initrd两个启动文件。

default中配置文件标记启动内核。标记ks.cfg安装内容文件。

ks.cfg文件需要一台图形化操作系统下载pykickstart软件,启动之后手动鼠标点击就可以生成ks.cfg文件。

将ks.cfg文件放到vsftpd服务器中,default文件中指定相应的路径就可以。

镜像也需要挂载到/var/ftp下的目录,default文件中指定相应的路径。

所有配置完成之后,可以试验是否成功。


先安装服务

# yum install dhcp tftp-server tftp  vsftpd lftp -y


DHCP安装和配置

#cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y

#vim /etc/dhcp/dhcpd.conf

subnet 192.168.10.0 netmask 255.255.255.0 {
  range 192.168.10.3 192.168.10.88;
  next-server 192.168.10.2;
  filename "pxelinux.0";
  default-lease-time 600;
  max-lease-time 7200;
}

注释:第一行写网段,子网掩码;第二行写tftp服务器的ip地址(也就是配置pxe的本机ip)


TFTP安装和配置

TFTP
    协议:ftp

安装软件
    客户端:tftp
    服务器:tftp-server
#yum -y install xinted
配置
    # vim /etc/xinetd.d/tftp
    
        disable                 = no                                //不关闭这个服务
        server_args          = -s /var/lib/tftpboot  -c

        -c  上传
重启服务
    #/etc/init.d/xinetd  restart

xinetd 超级守护进程

另外开启服务的方法:
    #chkconfig      tftp    on

不支持目录的上传和下载

#touch /var/lib/tftpboot/{a.txt,b.txt}

为了保证tftp好用:
    1.#/etc/init.d/iptables
    2.#setenforce 0
    3.#chmod 777  /var/lib/tftpboot  -R


客户端
    #tftp 172.16.70.251
    tftp > get  a.txt      //下载
    tftp > put  b.txt      //上传
    tftp > quit


PXE引导文件

拷贝引导文件:
# yum provides */pxelinux.0
syslinux-4.05-13.el7.x86_64

#yum install syslinux -y

# find / -name 'pxelinux.0'
/usr/share/syslinux/pxelinux.0

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


default文件

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

# mount  /dev/cdrom  /mnt
# cp /mnt/isolinux/*  /var/lib/tftpboot/
# cp /mnt/isolinux/isolinux.cfg  /var/lib/tftpboot/pxelinux.cfg/default
# umount /mnt

# mount /dev/cdrom /var/ftp/centos7u3

修改default配置文件:
# vim  /var/lib/tftpboot/pxelinux.cfg/default
label linux
  menu label ^Install CentOS Linux 7
  kernel   vmlinuz
  append initrd=initrd.img inst.stage2=ftp://192.168.10.2/centos7u3 inst.repo=ftp://192.168.10.2/centos7u3 ks=ftp://192.168.10.2/ks.cfg


ks.cfg文件

主机(任意一台图形化的操作系统):
# yum install system-config-kickstart -y
# system-config-kickstart
把做好的ks.cfg文件拷贝到pxe服务器的/var/ftp/里面去

yum源配置:
[development]       //名字必须是这个
name=centos7u3
baseurl=file:///mnt/centos7u3
enabled=1
gpgcheck=0


vsftpd服务

#cd  /var/ftp/
#mkdir centos7u3
# mount  /dev/cdrom  centos7u3/
mount: /dev/sr0 写保护,将以只读方式挂载

启动服务


进行测试,新建一台以pxe方式安装的操作系统。

如果失败,请检测以上步骤是否漏掉。尤其是chmod  -R 777 /var/ftp/tftpboot

还有default文件文件路径是否正确。