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)
上一篇 2016-11-07 10:55
下一篇 2016-11-07 11:44

相关推荐

  • 超文本传输安全协议—HTTPS

        超文本传输安全协议(英语:Hypertext Transfer Protocol Secure,缩写:HTTPS,常称为HTTP over TLS,HTTP over SSL或HTTP Secure)是一种通过计算机网络进行安全通信的传输协议。HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包。H…

    Linux干货 2017-08-07
  • 马哥linux运维网络班第22期-第一周博客作业

    计算机的组成及其功能 计算机由运算器,控制器,存储器,输入装置和输出装置组成 (1)运算器 对数据进行常规运算(+,-,*,/)和逻辑运算(与,或,非等)及比较位移等操作 (2)控制器 分析从存储器中读出的指令并按预先规定的步奏执行操作 (3)存储器 存储程序和数据信息并实现快速存取 (4)输入设备 把各种类型的信息转换为二进制编码输入进计算机存储起来 (5…

    Linux干货 2016-08-14
  • find命令、归档压缩工具、xargs、exec、tar、xz、cpio

    find命令、归档压缩工具、xargs、exec、tar、xz、cpio find命令 Linux中的文件查找工具常见的有locate和find以及whereis.他们适用于不同的场合,如whereis只能用于搜索程序的二进制文件、源代码文件和man手册等相关文件,find和local能够查找磁盘上的所有文件(不包括proc和sys目录下的虚拟文件)。fin…

    Linux干货 2016-08-18
  • 七.Linux博客-2016年8月4日cat、cut、less、head、tail、wc、sort、uniq、grep

    格式说明: 操作 概念 命令 说明及举例 七.cat、cut、less、head、tail、wc、sort、uniq、grep cat cat -A a.txt 查看隐藏内容 cat -n a.txt 显示行号 cat -s a.txt 压缩空行,把多行空行压缩为一行 …

    Linux干货 2016-08-24
  • LVS介绍及工作原理图解

    一、LVS简介 LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器,是一个由章文嵩博士发起的自由软件项目,官方站点是:http://www.linuxvirtualserver.org。现在LVS已经是Linux标准内核的一部分,在Linux2.4内核以前,使用LVS时必须重新编译内核以支持LVS功能模块,但是从Linux2….

    2017-12-06
  • linux基础学习(数组、字符串变量处理)

    2016-08-22 授课内容: 数组 高级字符串操作 一、数组   变量:存储单个元素的内存空间   数组:存储多个元素的连续的内存空间,相当于多个变量的集合。   数组名和索引   索引:编号从0开始,属于数值索引   bash的数组支持稀疏格式(索引不连续)   …

    Linux干货 2016-08-24