用系统为centos6的主机,搭建PXE服务器,实现批量安装centos6,7系统

Posted aiaitie

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用系统为centos6的主机,搭建PXE服务器,实现批量安装centos6,7系统相关的知识,希望对你有一定的参考价值。

1. iptables -F

    setenforce 0 临时关掉selinux,清掉防火墙
    永久生效更改配置文件:vim /etc/sysconfig/selinux
    chkconfig iptables off

2. yum -y install httpd dhcp tftp-server

    安装http服务用于构建镜像文件的yum仓库
    安装dhcp服务,搭建dhcp服务器,为客户端分配ip地址
    安装tftp服务,搭建tftp服务器,准备系统启动的引导文件,如pxelinux.0 menu32 内核以及,磁盘映像文件

3. 构建yum仓库

    service httpd start  开启http服务
    ss -tnlp |grep -w 80 查看80服务的端口是否打开
    echo ‘test‘ > /var/www/html/index.html 用浏览器打开httpd服务器的ip地址,测试能否打开
    mkdir -p /var/www/html/centos/7/os/x86_64
    mkdir -p /var/www/html/centos/6/os/x86_64
    该虚拟机可以添加两个光盘驱动,分别将对应的镜像文件,一一挂载到上面两个相对应的目录
    mount /dev/sr0 /var/www/html/centos/7/os/x86_64
    mount /dev/sr1 /var/www/html/centos/7/os/x86_64
    到此,镜像文件的yum仓库已经构建好了,可以打开网页,测试一下。
    http://192.168.190.146/centos/6/os/x86_64/
    http://192.168.190.146/centos/7/os/x86_64/6
    生产环境中,http服务器要保证有足够的容量存放,镜像文件,或者创建软连接到存储上。

4. 准备ks引导文件

6上面使用服务器(安装了图形化),使用system-config-kickstart 命令可以编辑ks文件,设定分区大小,密码,要安装的包组,初始化环境脚本,等等最后保存为ks6.cfg文件。
同理,在7的服务器上面使用同样的命令制作ks.cfg文件。在编辑时,无法选择rpm包组,解决方法为:将本机的本地仓库文件名,即【base】更改为 【development】后,再次执行 system-config-kickstart 即可      ksvalidator ks7.cfg 检查ks文件的语法
将准备好的ks文件,放到pxe服务器的/var/www/html/,下面

5. 搭建tftp服务器

    tftp 为非独立服务,centos6上面由Xinetd服务监听端口69 centos7上面由systemd监听
    service xinetd start
    chkconfig tftp on 开启tftp服务
    ss -unlp |grep -w 69 查看69端口是否开启

7. 准备系统引导文件

    一般的系统引导文件放在tftp服务器的工作目录  /var/lib/tftpboot/
        [[email protected] tftpboot]#tree
        .
        ├── kernel6
        │   ├── initrd.img
        │   └── vmlinuz
        ├── kernel7
        │   ├── initrd.img
        │   └── vmlinuz
        ├── menu.c32
        ├── pxelinux.0
        └── pxelinux.cfg
                └── default
准备好相应的启动文件。
cp /var/www/html/centos/7/os/x86_64/isolinux/initrd.img .
cp /var/www/html/centos/7/os/x86_64/isolinux/vmlinuz .
cp /var/www/html/centos/6/os/x86_64/isolinux/{initrd.img,vmlinuz} .
rpm -ql syslinux 查找引导文件,没有需要安装 syslinux
pxelinux.0 menu32 两个文件复制到工作目录下
mkdir pxelinux.cfg
复制光盘镜像里面的isolinux.cfg 重命名为default文件
编辑default文件

default menu.c32
timeout 600

label local
menu label Boot from ^local drive
menu default
localboot 0xffff
menu title http://192/168.190.146/
label linux
menu label ^AutoInstall CentOS 7
kernel kernel7/vmlinuz
append initrd=kernel7/initrd.img ks=http://192.168.190.146/ksdir/ks7.cfg

label manual
menu label ^Manual install CentOS 7
kernel kernel7/vmlinuz
append initrd=kernel7/initrd.img

inst.repo=http://192.168.190.146/centos/7/os/x86_64/

label linux
menu label ^AutoInstall CentOS 6
kernel kernel6/vmlinuz
append initrd=kernel6/initrd.img ks=http://192.168.190.146/ksdir/ks6.cfg
label manual
menu label ^Manual install CentOS 6
kernel kernel6/vmlinuz
append initrd=kernel6/initrd.img
repo=http://192.168.190.146/centos/6/os/x86_64/

7. 搭建dhcp服务器

    首先要配置dhcp服务的配置文件,否则启动dhcp服务会失败
    vim /etc/dhcp/dhcpd.conf
    cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
    直接用dhcp的模板配置文件覆盖原来的配置文件,在基础上进行修改
    vim /etc/dhcp/dhcpd.conf

技术分享图片

    service dhcpd start 开启dhcp服务
    ss -unlp |grep dhcpd 查看dhcp服务端的端口67 是否开启
    到此,dhcp服务器已搭建完毕

8.新建一个虚拟机,添加仅主机模式的网卡(和服务器一定要在同一个网络)。进行测试,效果如下:

技术分享图片























以上是关于用系统为centos6的主机,搭建PXE服务器,实现批量安装centos6,7系统的主要内容,如果未能解决你的问题,请参考以下文章

KVM 搭建PXE+DHCP+DNS+vsftpd+tftp+KICKSTART

搭建Pxe服务器无人听应答全自动安装CentOS6.7系统

centos7搭建PXE环境安装CentOS6系统

Centos6.5 PXE服务器搭建

Linux PXE自动化安装centos6系统

centos7 搭建pxe批量安装系统