PXE自动化安装系统服务

PXE

PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成客户端的基本软件设置,从而引导预先安装在服务器中的终端操作系统。PXE可以引导多种操作系统,如:Windows95/98/2000/windows2003/windows2008/winXP/win7/win8,linux等。

PXE自动安装系统所需组件

1、DHCP服务

DHCP动态主机配置协议会在预引导加载操作系统的时候动态自动分配一个IP地址,同时完成网络加载的主机的设定;需要在其地址池subnet配置中配置一下参数:
filename "";:基于网卡引导时要加载的initial  boot file的文件名;
next-server HOST;:要是一个tftp-servr,简单文件传输协议

2、tftp-server服务

TFTP:trivialfile transfer protocol,简单文件传输协议服务器。基于UDP文件传输,一般该服务器仅用于PXE预引导加载环境。用于提供预引导加载文件pxelinux.0的读取。相关程序包:Server:tftp-server;Client: tftp,监听端口 69/udp,
安装tftp程序
    ]# yum install tftp-server tftp
默认的提供文件服务的根目录:
    /var/lib/tftpboot/
服务启动运行方式:
    CentOS6:
        # chkconfig tftp on
        # service xinetd restart
    CentOS7:
        # systemctl start tftp.socket

3、syslinux包

提供适用于不同的操作系统的各种bootloader文件,支持DOSFATfilesystems、Linux ext2/ext3 ,filesystems(EXTLINUX)、 PXEnetwork boots(PXELINUX)、ISO 9660 CD-ROMs (ISOLINUX);基于网卡引导的bootloader由其提供文件Wie/usr/share/syslinux/pxelinux.0

4、file server(yum repository)yum仓库

基于网络引导加载文件的时候会根据脚本,引导到指定的路径加载yum仓库进行安装程序或者镜像文件,存储此yum仓库的位置称为file server。该file server可以通过http对外通过程序包或者镜像,实现引导之后的安装操作。 file server可以creatrepo命令手动创建;可以直接复制或者挂载光盘的完整镜像作为通过程序包的文件存储源服务

基于PXE自动安装系统服务配置(CentOS 7)

环境为CentOS 7系统,自动化安装的系统镜像为CentOS 7
1、安装相关程序包
]# yum install httpd -y 安装httpd服务 为了提供安装程序包路径
]# yum install tftp-server -y 安装tftp服务
]# yum install syslinux -y 安装提供pexlinux.0文件的程序包
]# yum install  dhcp -y 安装dhcp服务
2、准备file server(yumrepository):yum仓库
]# mount /dev/cdrom /media 挂载Centos7 光盘镜像   
]# mkdir /var/www/html/centos7  创建安装程序文件放置位置

]# cp anaconda-ks.cfg /var/www/html/ 将配置好的kickstart文件复制到安装程序文件目录,这里我直接使用了当前系统的文件
]# chmod 666 /var/www/html/anaconda-ks.cfg 给文件加权限
]# vim /var/www/html/anaconda-ks.cfg 编辑kickstart文件
    url --url="http://192.168.25.128/ anaconda-ks.cfg
]# mount -o --bind/media/cdrom /var/www/html/centos7 通过目录绑定的方式挂载光盘镜像


 注意:也可以使用
3、提供预引导加载等相关文件
]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ 复制pxelinux.0文件到tftp服务的文件目录
]# cp /media/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/ 复制内核启动文件到tftp文件目录
]# cp /usr/share/syslinux/{chain.c32,memdisk,menu.c32,mboot.c32} /var/lib/tftpboot/ 复制与pxe启动和加载相关的文件
4、配置tftp文件
tftpboot]# mkdir pxelinux.cfg 在/var/lib/tftpboot目录下创建pxelinux.cfg目录为
]# vim /var/lib/tftpboot/pxelinux.cfg/default 创建为menu.c32提供菜单的配置文件,即菜单加载时用到的配置文件信息
    default menu.c32
        prompt 5 菜单显示时间
        timeout 30 退出时间
        MENU TITLE CentOS 7 PXE Menu 标题

        LABEL linux 标签
        MENU LABEL Install CentOS 7 x86_64 菜单名
        KERNEL vmlinuz 指明要加载的内核文件
        APPEND initrd=initrd.img inst.repo=http://192.168.25.128/centos7 ks=http://192.168.25.128/anaconda-ks.cfg 
            指明initrd文件位置,和安装程序所在的yum仓库和kickstart文件路径

5、配置dhcp文件

]# cd /etc/dhcp/
]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example ./dhcpd.conf 复制配置文件
]# vim dhcpd.conf 编辑dhcp配置文件,如下,
    subnet 192.168.25.0 netmask 255.255.255.0 {
        range 192.168.25.100 192.168.25.105;
        filename "pxelinux.0";
        next-server 192.168.25.128; 此处指向tftp服务地址,这里是本机
    }
:.,$d vim命令行删除subnet配置段以后所有无用配置
6、启动服务
]# systemctl start httpd
]# systemctl start dhcpd.service
]# systemctl start tftp.socket
7、客户端开机自动安装

CentOS 6和CentOS 7的配置有部分不同;

cp/usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cp/media/cdrom/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/
cp /media/cdrom/isolinux/{boot.msg,vesamenu.c32,splash.jpg}/var/lib/tftpboot/
mkdir/var/lib/tftpboot/pxelinux.cfg/
cp/media/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
内容如下所示:
            display boot.msg

            menu background splash.jpg
            menu title Welcome to CentOS 6.7 MageEdu!
            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 autoinst
            menu label ^Auto Install CentOS
            menu default
            kernel vmlinuz
            append initrd=initrd.img ks=ftp://192.168.10.16/pub/centos6.cfg
            label linux
            menu label ^Install or upgrade an existing system
            kernel vmlinuz
            append initrd=initrd.img
            label vesa
            menu label Install system with ^basic video driver
            kernel vmlinuz
            append initrd=initrd.img nomodeset
            label rescue
            menu label ^Rescue installed system
            kernel vmlinuz
            append initrd=initrd.img rescue
            label local
            menu label Boot from ^local drive
            localboot 0xffff
            label memtest86
            menu label ^Memory test
            kernel memtest
            append -

原创文章,作者:M20-1马星,如若转载,请注明出处:http://www.178linux.com/58175

(0)
M20-1马星M20-1马星
上一篇 2016-11-07 10:55
下一篇 2016-11-07 11:44

相关推荐

  • 一起学DNS系列(十四)DNS查询工具之DIG的使用(2)

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://jeffyyko.blog.51cto.com/28563/240243    上节谈到了利用DIG的+trace参数追踪域名解析的过程,其实除此之外,DIG还有一些其他的参数,这节会涉及到这…

    2015-03-17
  • 编写服务脚本/root/bin/testsrv.sh和备份脚本/root/bin/copycmd.sh

    编写服务脚本/root/bin/testsrv.sh,完成如下要求 (1) 脚本可接受参数:start, stop, restart, status (2) 如果参数非此四者之一,提示使用格式后报错退出 (3) 如是start:则创建/var/lock/subsys/SCRIPT_NAME, 并显示“启动成功” 考虑:如果事先已经启动过一次,该如何处理? (…

    Linux干货 2016-08-24
  • LVS中nat和dr的原理与用法简述

      LVS中nat和dr的原理与用法简述 lvs-nat:   多目标IP的DNAT,通过将请求报文中的目标地址和目标端口修改为某挑出的RS的RIP和PORT实现转发; (1)RIP和DIP必须在同一个IP网络,且应该使用私网地址;RS的网关要指向DIP; (2)请求报文和响应报文都必须经由Director转发;Director…

    Linux干货 2016-10-30
  • 网络班26期-第1周课程作业

    1、描述计算机的组成及其功能? (1)CPU:计算机的大脑,计算机的运算,命令的控制功能,寄存器及缓存都由CPU功能承担; (2)内存:RAM,随机访问存储器,计算机的另一个核心功能,系统指令存放及运行的基础。 (3)输入设备:人工给计算机下指令的设备,例如鼠标,键盘等; (4)输出设备:计算机输出人工输入的执行命令的结果;例如,音响,显示屏等; …

    Linux干货 2017-01-10
  • Linux文件和目录管理类命令初识

    简述 在Linux操作系统使用过程中,因为运维需要频繁的对文件、目录进行操作,所以需要学习一些关于文件、目录的命令 Linux上文件是什么? 「文件」:存储空间存储的一段流式数据,可以按名「存取」这些数据 常见文件类型 -:常规文件d:目录文件b:块设备文件,以「block」为单位进行随机访问,常见设备「硬盘」c:字符设备文件,以「character」为单位…

    Linux干货 2016-11-06
  • N26-第六周

    请详细总结vim编辑器的使用 vim 模式化的编辑器 vim的三种模式:1.编辑模式(命令模式)                          2.输入模式          …

    Linux干货 2017-03-13