pxe实现自动化安装centos系统

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pxe实现自动化安装centos系统相关的知识,希望对你有一定的参考价值。

实验:pxe实现自动化安装centos7系统

将配置搭建为如下框架:
    .
    ├── initrd.img
    ├── menu.c32
    ├── pxelinux.0
    ├── pxelinux.cfg
    │?? └── default
    └── vmlinuz
(1)A机器配置
    yum info tftp-server httpd  dhcp syslinux       syslinux提供pxelinux.0引导文件
    #chkconfig tftp on  开启有xinetd守护的tftp服务  centos6上
    #vim  /etc/xinetd.d/tftp    也可以直接改文件
    /var/lib/tftpboot   此为tftp服务的共享目录,裸机网卡内置的tftp客户端可以从此获取文件
    可以安装tftp客户端进行获取文件测试,tftp 172.18.62.60命令连接服务端,get获取共享目
    录的文件;
    cd /var/lib/tftpboot
    cp /mnt/centos7/isolinux/{initrd.img,vmlinuz} . 复制内核和根文件系统到此目录下
    updatedb        更新数据库
    locate pxelinux.0   用locate命令查询引导文件
    cp   /usr/share/syslinux/pxelinux.0 .   复制syslinux包生成的引导文件pxelinux.0到当前目
    录;
    cp  /usr/share/syslinux/menu.c32 .      复制syslinux包的menu.c32文件到当前目录作为启
    动菜单的背景;
    mkdir pxelinux.cfg
    cp /mnt/centos7/isolinux/isolinux.cfg pxelinux.cfg/default  复制菜单文件到当前创建的目
    录,并改名;
    vim   pxelinux.cfg/default  
        default menu.c32
        timeout 600
        menu title PXE INSTALL CentOS
        label desktop
            menu label ^Install Desktop CentOS 7
            kernel vmlinuz
            append initrd=initrd.img ks=http://172.18.62.60/ks/ks7-pxe-desktop.cfg

        label mimi
        menu label install ^Mini CentOS 7
        kernel 7/vmlinuz
        append initrd=7/initrd.img ks=http://172.18.62.60/ks/ks7-pxe-mini.cfg
        label local
            menu default
            menu label Boot from ^local drive
            localboot 0xffff
        menu end

    systemctl start tftp    开启服务
    cd /var/www/html/
    mkdir centos/7/ -pv
    mkdir ks/
    cd ks
    放入用工具或自己模板修改做好的ks文件如下:
        ├── ks7-pxe-desktop.cfg
        └── ks7-pxe-mini.cfg
    chmod 644 *
    mount /dev/sr0 centos/7/    挂载系统到此目录下,ks文件写入此系统安装路径
    systemctl start httpd
    vim /etc/dhcp/dhcpd.conf
        option domain-name "yongstar.tech"; 全局配置
        option domain-name-servers 114.114.114.114,8.8.8.8;
        default-lease-time 86400;
        max-lease-time 864000;
        subnet 172.18.0.0 netmask 255.255.0.0 {
                        range 172.18.62.70 172.18.62.200;
                        option routers 172.18.0.1;
                        filename "pxelinux.0";  pxe配置的启动文件名
                        next-server 172.18.62.60;   tftp的地址
        }
        systemctl start dhcpd
        确保67、69、80端口的打开
(2)要安装系统的机器配置
    虚拟机全局配置不能使用本地dhcp获取地址,而要使用搭建的dhcp服务
    网络模式要设置为仅主机模式
    centos7桌面版安装时内存需要大于1024M
(3)实验升级,实现在centos7上搭建可以同时安装centos6和centos7的系统的架构
    cd  /var/www/html/ks
    rz  将做好的ks文件导入实现如下:
        .
        ├── ks6-pxe-desktop.cfg
        ├── ks6-pxe-mini.cfg
        ├── ks7-pxe-desktop.cfg
        └── ks7-pxe-mini.cfg
    chmod 644 *
    cd ..
    mkdir centos/6
    mount /dev/sr1 centos/6/    做好centos6的系统仓库
    cd /var/lib/tftpboot/
    mkdir {6,7}
    vim pxelinux.cfg/default
        default menu.c32
        timeout 600
        menu title PXE INSTALL CentOS
        label desktop
            menu label ^Install Desktop CentOS 7
            kernel 7/vmlinuz
            append initrd=7/initrd.img ks=http://172.18.62.60/ks/ks7-pxe-desktop.cfg
        label desktop
            menu label ^Install Desktop CentOS 6
            kernel 6/vmlinuz
            append initrd=6/initrd.img ks=http://172.18.62.60/ks/ks6-pxe-desktop.cfg
        label mimi
            menu label install ^Mini CentOS 7
            kernel 7/vmlinuz
            append initrd=7/initrd.img ks=http://172.18.62.60/ks/ks7-pxe-mini.cfg
        label mimi
            menu label install ^Mini CentOS 6
            kernel 6/vmlinuz
            append initrd=6/initrd.img ks=http://172.18.62.60/ks/ks6-pxe-mini.cfg   路径要对,否则
        会出现很诡异错误,如内核指令集被禁用等;
        label local
            menu default
            menu label Boot from ^local drive
            localboot 0xffff
        menu end
    mv initrd.img  7/
    mv vmlinuz    7/
    cp /var/www/html/centos/6/isolinux/{initrd.img,vmlinuz} 6/
    形成如下目录:
        .
        ├── 6
        │   ├── initrd.img
        │   └── vmlinuz
        ├── 7
        │   ├── initrd.img
        │   └── vmlinuz
        ├── menu.c32
        ├── pxelinux.0
        └── pxelinux.cfg
                └── default

实验:centos6实现pxe自动化安装系统

(1)A机器配置
    yum install httpd tftp-server dhcp syslinux
    chkconfig httpd on
    chkconfig dhcpd on
    chkconfig --list
    chkconfig tftp on
    cd /etc/dhcp/
    cat dhcpd.conf  发现没有内容
    cp /usr/share/doc/dhcp*/dhcpd.conf.sample dhcpd.conf    拷贝配置文件示例
    vim dhcpd.conf
        subnet 172.18.0.0 netmask 255.255.0.0 {
                        range 172.18.62.10 172.18.62.50;
                        filename "pxelinux.0";
                        next-server 172.18.62.50;
        }
    service dhcpd start
    ss -nul
    cd /var/www/html/
    mkdir centos/6 -pv
    mount /dev/sr0 centos/6/
    mkdir ksdir
    cd ksdir/
    rz  导入应答文件
    vim ks7-pxe-desktop.cfg     安装centos7系统,加入此3行可以保证全自动
        eula --agreed
        systemctl set-default multi-user.target
        systemctl disable initial-setup-graphical.service
    mv ks6-mini_(2).cfg ks6-pxe-mini.cfg
    mv ks6-desktop.cfg ks6-pxe-desktop.cfg
    chmod 644 *
    cd /var/lib/tftpboot/
    yum install mlocate
    updatedb
    locate pxelinux.0
    cp /usr/share/syslinux/pxelinux.0 .
    cp /mnt/centos6/isolinux/{initrd.img,vmlinuz} .
    cp /mnt/centos6/isolinux/{boot.msg,vesamenu.c32} .  复制菜单布局文件
    mkdir   pxelinux.cfg
    cp /mnt/centos6/isolinux/isolinux.cfg pxelinux.cfg/default
    vim pxelinux.cfg/default 
        default vesamenu.c32
        #prompt 1
        timeout 600
        display boot.msg
        menu background splash.jpg
        menu title PXE INSTALL CentOS 6.9!
        menu color border 0 #ffffffff #00000000
        menu color sel 7 #ffffffff #ff000000
        menu color title 0 #ffffffff #00000000
        menu color tabmsg 0 #ffffffff #00000000
        menu color unsel 0 #ffffffff #00000000
        menu color hotsel 0 #ff000000 #ffffffff
        menu color hotkey 7 #ffffffff #ff000000
        menu color scrollbar 0 #ffffffff #00000000

        label desktop
            menu label ^Install an Desktop system
            menu default
            kernel vmlinuz
            append initrd=initrd.img ks=http://172.18.62.50/ksdir/ks6-pxe-desktop.cfg
        label mini
            menu label Install ^Mini system
            kernel vmlinuz
            append initrd=initrd.img ks=http://172.18.62.50/ksdir/ks6-pxe-mini.cfg
        label local
            menu label Boot from ^local drive
            localboot 0xffff
    cp /mnt/centos6/isolinux/splash.jpg .
    ss -nutl    确保67、69、80端口打开

(2)要安装系统的机器配置
    虚拟机全局配置不能使用本地dhcp获取地址,而要使用搭建的dhcp服务
    网络模式要设置为仅主机模式
    centos6桌面版安装时内存不需要需要大于1024M
    注意:磁盘选择的大小和ks内的设置分区关系密切 

以上是关于pxe实现自动化安装centos系统的主要内容,如果未能解决你的问题,请参考以下文章

PXE+Kickstack实现无人值守安装CentOS 7操作系统

PXE+Kickstack实现无人值守安装CentOS 7操作系统

CentOS使用PXE网络启动自动安装操作系统

Linux利用PXE实现自动化安装CentOS流程介绍

实验:PXE实现自动化安装系统

搭建PXE与DHCP实现无人值守自动化安装CentOS8系统