PXE环境下安装系统(DHCP+TFTP+HTTP+kickstart)

简单的说,这就是一个通过PEX网卡自动安装系统的过程。整个启动的过程大概可以理解为这样:计算机从PEX网卡设备启动,通过网卡与DHCP服务之间的4次互相广播后获得DHCP服务器提供的IP地址,并且DHCP服务器会告诉该网卡TFTP服务的位置,从而使PXE网卡可以获得“pxelinux.0”的启动文件,然后通过该文件可以读取TFTP服务器中的一些相应的配置文件,从而使该计算机可以进入系统安装界面,而这里我们想通过自动化的方法安装,所以我们就需要kickstart文件,而为了能够获得源,在这里我采用了HTTP服务进行设置。

下面我们可以将PXE配置的过程分为5部:

1、配置dhcp服务

2、配置tftp server

3、提供PXE的工作环境

4、基于http服务提供安装源

5、提供kickstart文件,即ks.cfg文件

下面我们就以Centos6.5为例来实现一次。

本机的IP为172.16.106.1

1、配置dhcp服务

首先还是得先安装DHCP包

安装好之后可以查看生成了哪些文件(这里就不全部列出来了)

其中/etc/dhcp/dhcpd.conf是我们的配置文件

配置文件的时候可以参考其中的一个配置模型

参照这个我们配置自己所需要的一些东西

下面是我的一些配置;

其中主要是对subnet进行配置,网段以及掩码,还有就是作为DHCP服务器可以给出的地址段,以及option routers网关,而next-server指向的是下面的TFTP服务器,以及filename指向该服务器中的启动文件。

这样我们的DHCP服务就配置好了,为了确认配置文件中的语法格式是否正确我们还可以用一下命令进行测试。

#service dhcpd configtest

一切正常后我们就可以启动DHCP服务了。

#service dhcpd start


2、配置tftp server

由于TFTP需要依赖于xinetd,所以如果你的机器上没有的话也要安装起来,建议同时安装tftp客户端(方便调试tftp服务器)

#yum install xinetd 
#yum install tftp-server tftp
            

按了之后需要把TFTP开启

# chkconfig tftp on

当然要使他生效的话还得让xinetd重启,如果成功的可以查看tftp的69号端口是否开启。

# service xinetd restart
# ss -unl | grep :69  查看69号端口是否打开

3、提供PXE的工作环境

首先我们要安装syslinux,这个东西这个东西有我们所要用到的引导文件,类似于grub的功能。

可以先检查有没有装这个东西:

# rpm -q| grep syslinux

如果没有则安装:

# yum install syslinux

安装好之后我们需要把生成的pxelinux.0 文件放到我们的tftp服务器的路径下面,还有一些相关的文件也必须一起复制过去。在这里,我们顺便把内核等文件一并复制过去。

注:这里我把centos的镜像光盘挂载在了/media/cdrom/下。

# cp /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot/
# cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img}  /var/lib/tftpboot/   内核及根文件系统
# cp /media/cdrom/isolinux/{splash.jpg,vesamenu.c32,boot.msg}  /var/lib/tftpboot
安装界面的图形界面及背景图片等
# mkdir /var/lib/tftpboot/pxelinux.cfg/
# cp /media/cdrom/isolinux/isolinux.cfg  /var/lib/tftpboot/pxelinux.cfg/default 配置文件

有了这些文件之后,PXE网卡就可以进入安装界面。

4、基于http服务提供安装源

为了给安装系统时配置源,这里我用的是HTTP服务,将本机作为一个HTTP服务器。

首先还是得安装HTTP包:

同样我们也可以先查看下是否安装过HTTP服务,若没装过则开始安装。

# rpm -q httpd     查看是否安装
# yum -y install httpd

这里我们只需把本地的镜像磁盘挂载绑定到HTTP服务的默认路径下就可以了,为了方便以后操作我们不直接将磁盘挂载在/var/www/html/路径下,而是挂载在其子目录下,因为磁盘是只读挂载的,不能修改,一旦挂在/var/www/html/的话将不能对这里内容进行修改,放在其子目录下的话可以使服务器更有灵活性。

# mkdir  /var/www/html/centos6   先创建一个名为centos6的子目录

# mount --bind /media/cdrom /var/www/html/centos6/   将磁盘绑定挂载到该子目录下

这样我们的一个HTTP环境也安装好了。

5、提供ks.cfg文件

这里我们先介绍一下kickstart文件的格式,一般系统创建好之后都会在管理员的家目录/root/下生产一个anaconda-ks.cfg文件,你可以把它当做你的ks文件模板。

该文件可以分为3段:

1、命令段

2、软件包段 :%packages

pack_name 直接是一个包的名字

@group 包组的名字

-pack_name: 不安装的包,但如果被依赖,也会被安装

3、脚本段

%pre:安装前脚本

%post:安装后脚本

ks文件也可以通过图形化界面安装,首先我们还是得安装kickstart包:

# yum install system-config-kickstart
安装好之后进行配置
# system-config-kickstart

进入这个图形化界面后,配置一些你所需要的。

配置完成之后点击左上角的file选项,然后点击save即可,保存时,会有交互,问你保存在哪里,文件名称,一般直接保存为/var/www/html/ks.cfg

这样我们的一个PXE安装环境就OK了。

但是需要注意的是,我们这样设置的话在安装的时候我们还必须直接指定KS文件的位置,如

如果你想要更加的自动化,那么你也可以将KS的路径直接写进配置文件,即/var/lib/tftproot/pxelinux.cfg/default文件

可以你想要用的label的最后一行加上ks=http://172.16.106.1/ks.cfg

如果你也一切正常的话,那么我们的PXE环境就成功了。好的那么我们今天就到这里了!

PXE环境下安装系统(DHCP+TFTP+HTTP+kickstart)

时间: 2024-08-23 12:37:38

PXE环境下安装系统(DHCP+TFTP+HTTP+kickstart)的相关文章

KICKSTART+DHCP+TFTP+HTTP基于PXE完成全自动安装系统

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

DHCP+TFTP+HTTP+kickstart实现PXE自动化部署系统Centos

前提:对DHCP,tftp-server,httpd有一定了结,本文将略过对服务的讲解和安装过程,主要讲通过这三个服务来实现PXE服务器的搭建过程. 准备工作: 安装软件包: 安装制作ks.cfg文件工具(图形界面下):yum-y system-config-kickstart 安装服务:yum -y installdchp tftp-server httpd 安装syslinux:yum -yinstall syslinux 或者使用下面的安装方法一次性全部安装: yum -y install

windows环境下安装win8.1+Mac OS X 10.10双系统教程

首先要感谢远景论坛里的各位大神们的帖子  没有他们的分享我也不能顺利的装上Mac OS X 10.10! 写这篇随笔主要是为了防止自己遗忘,同时给大家分享下我的经验. 本教程适用于BIOS+MBR分区的朋友们使用 首先介绍下我的电脑硬件信息 安装环境为:win8.1系统 引导方式为:变色龙r2378 一.准备工作 1.下载Mac OS X 10.10镜像(本镜像为懒人版镜像非官方镜像) 地址:http://pan.baidu.com/s/1gdEf4Gj 2.下载所需要使用到的工具,我将所有需要

简单搭建PXE无人值守自动化安装系统

PXE环境概述 在公司进行批量部署服务器安装方法: Kickstart (PXE+DHCP+TFTP+HTTP) 或 Cobbler 批量装机软件介绍 Kickstart和Cobbler. ??Kickstart是一种无人值守的安装方式.它的工作原理是在安装过程中记录人工干预填写的各种参数,并生成一个名为ks.cfg的文件.如果在自动安装过程中出现要填写参数的情况,安装程序首先会去查找ks.cfg文件,如果找到合适的参数,就采用所找到的参数:如果没有找到合适的参数,便会弹出对话框让安装者手工填写

Kubuntu 14.04 环境下安装:flash 火狐插件,搜狗输入法,更改分辨率1366x768

本文档的pdf文件网盘地址:http://pan.baidu.com/s/1hqgQId2 Kubuntu 14.04 环境下安装:flash 火狐插件,搜狗输入法,更改分辨率 1366x768http://www.kubuntu.org/ 系统安装后没有中文输入法,可以联网的话,建议使用:百度在线输入法(见下链接)Ubuntu安装Fcitx(小企鹅五笔输入法)http://www.cnblogs.com/conanboa/archive/2010/03/04/1678402.html 安装目标

DICOM:Ubuntu14环境下安装dcm4chee+oviyam2.1

背景: 之前博文DICOM:开源DICOM服务框架DCM4CHEE安装中曾介绍过在Windows7环境下安装部署dcm4chee.近期公司项目需要与部署到Linux系统的远端基于dcm4chee框架的DICOM服务器进行交互.由于网络问题,为了提高调试效率,就在本地Ubuntu14虚拟机中尝试安装部署了一套dcm4chee服务以及oviyam2客户端. 虽然官网对dcm4chee在Linux环境的安装介绍比较详细,但是在安装过程中还是遇到了许多问题,遂决定记录下来以备以后所用. 官方说明: 官方

Linux环境下安装Nodejs

记录下 Linux 环境下 安装 Nodejs 系统安装环境:  Centos 6.5  x86_64 nodejs 版本:node-v0.10.26.tar.gz 软件安装目录: /pro_in 开始安装: 安装 编译工具  yum -y install gcc* cd  /pro_in   目录中: # tar zxvf node-v0.10.26.tar.gz   --解压 cd  /pro_in/node-v0.10.26   目录中: [[email protected] node-v

在windows环境下安装redis和phpredis的扩展

在windows环境下安装redis和phpredis的扩展 1.首先配置php: 需要在windows的集成环境中找到php的扩展文件夹,ext,然后在网上寻找自己的php对应的.dll文件 比如说的我的phpinfo里面显示是Arti..:x86,所以需要选择X86,这个跟系统无关,我的系统还是64位的呢! 然后我的集成环境是ts而不是nts这个都可以在phpinfo文件中找到! 下载文件php_igbinary.dll,php_redis.dll 然后修改配置文件php.ini(php文件

在Win7环境下安装启动Linux

在Win7系统下,安装启动Linux特别的不方便,因为XP下的boot.ini配置文件不在了,要添加一下启动选项的话, 只能使用专门的工具,这或多或少给人带来不爽的感觉,,, 其实Win7下虽然没有了boot.ini文件,但是在C盘目录下的boot.ini文件,同样还是可以添加系统的启动选项的,这让我们又可以脱离专门的配置工具,手动的设置grub4dos,然后启动安装linux,ubuntu了. 首先去网上下载grub4dos这个软件包,然后把"grldr","grldr.m