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
下一篇 2016-11-07

相关推荐

  • linux入门基础知识及简单命令介绍

    1、计算机硬件组成介绍 计算机主要由cpu(运算器、控制器),内存,I/O,外部存储等构成。     cpu主要是用来对二进制数据进行运算操作,它从内存中取出数据,然后进行相应的运算操作。不能从硬盘中直接取数据。     内存从外部存储中取出数据供cpu运存。内存的最小单位是字节…

    Linux干货 2017-08-28
  • Linux计划任务

    计划任务 工作当中有时候需要将某件事情在未来的某个特定的时间执行,而自己确不在机器旁,该如何是好?像这样在每天特定的时间内去安排做一些事情这样,一种事情我们就称之为例行性的计划任务,其实在我们的操作系统当中都有类似的例行性任务计划功能,那如何去像设定闹钟一种在Linux上指定例行性计划任务并实施,主要有两种工具:at和crontab   计划任务分…

    Linux干货 2016-09-19
  • linux下手工创建新用户

    当我们要创建一个用户时,通常使用useradd命令就可以自动创建了一个用户;实际上,在linux下,一切皆文件,设置好几个文件,也是可以创建出一个用户: 文件如下: /etc/passwd  :用户 /etc/shadow  :密码 /home/username:用户家目录 /etc/group:用户组 /etc/skel/*: &nbs…

    Linux干货 2015-03-30
  • LVS四种模式

    马哥教育网络班18期 第17周课程练习1 LVS工作模式图解 LVS-NAT模式 TCP请求报文的目的IP地址被Director调度服务器重写为RIP后发送给RS,RS的默认网关配置为Director的DIP,Director接受到RS响应报文后修改源IP地址发送给用户IP RS网关指向DIP,RIP,DIP和RIP必须在同一网段内 Director转发请求…

    Linux干货 2016-06-23
  • 系统基础之Btrfs文件系统详解

    btrfs文件系统:技术预览版(centos7) 描述: Btrfs(B-tree,Butter FS,Better fs),GPL授权,Orale,2007 写实复制特性(Cow)     cp –reflink (只能在btrfs文件系统中使用) 想取代ext系统系统, 支…

    Linux干货 2016-09-21
  • 文件查找命令find

      在文件系统上常常需要根据文件的各种属性去查找符合条件的文件。在Linux下也有相当优异的查找命令。今天只要将find和locate。find通常不常用,因为速度慢!通常我们先使用locate来进行模糊查找,如果真找不到了,才以find来查找。为什么呢?因为locate是利用数据库来查找数据,所以速度非常快,而且并没有实际查询硬盘比较省时间。 l…

    Linux干货 2016-08-22