前言

在实际生产环境中,有时候我们会碰到为几十上百甚至上千台服务器安装Linux操作系统的需求,如果我们还是常规的去使用移动介质逐台安装,显然是一件低效又令人抓狂的事情,那要安装到何年何月啊?这对于我们追求高逼格形象的技术人员来讲当然是不可以接受的,为此,pxe模式批量部署系统应运而生。

原理

  我们知道,当我们使用其它引导介质(例如硬盘、软盘、U盘、CD或者DVD)安装操作系统时,是加载其首个扇区中MBR(主引导目录)中的引导程序并利用其查找各自介质中的必需数据来完成的。而pxe则是通过自带pxe bootrom的网卡使用TFTP(简单文件传输协议)和DHCP(动态主机配置协议)从网络服务器上查找并装载引导程序和必需的数据来完成系统的安装的。下面让我们通过实验来进一步理解其安装过程。

实验环境:vmware Workstation 10、CentOS-6.5-x86_64

  1、配置DHCP服务

     1、配置/etc/sysconfig/network-scripts/ifcfg-eth0 将网卡设置为开机启动,地址配置为静态(服务器一般设置为静态ip地址)。

2、关掉防火墙以免对实验带来不必要的麻烦(有可能有影响tftp)。

3、修改/etc/sysconfig/selinux配置文件,永久关闭selinux,以免带来不必要的麻烦。

4、yum -y installdhcp安装dhcp程序包

5、将/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample拷贝至/etc/dhcp/dhcpd.conf并做如下修改

6、依次做如下图操作,确保dhcpd服务运行

7、验证dhcp服务器配置

我的实验环境中有一个win7系统,将dhcp服务器所在虚拟机客户端与win7客户端接入vnet3中验证

测试win7是否能够自动获取自动配置信息

获取成功,dhcp服务器配置完毕!

2、配置tftp服务

    1、yum -y install tftp tftp-server

可以看到,由于tftp是瞬时服务进程,不能进行自我管理,需要通过超级服务进程进行管理,所以安装tftp-server时,超级服务进程程序xinetd被依赖。

2、设置并确保超级服务进程开机启动。

chkconfig tftp开启tftp服务

3、tftp服务器测试

新建一个文件,放到/var/lib/tftpboot/目录下,并在服务器本机进行测试。

本机测试成功

使用另外一台带有linux系统的客户端测试

测试成功,至此tftp服务器配置完毕。

3、配置http服务

    1、yum -y install httpd

2、设置httpd服务开机启动,开启httpd服务

创建/media/cdrom 目录并将系统安装光盘挂载至该目录,然后创建/var/www/html/centos/6/x86_64并绑定挂载至/media/cdrom,通过http服务器为pxe客户端提供安装源和ks文件

用宿主机测试http服务器,看是否工作正常

http服务器测试成功!

4、制作kickstart.cfg文件

为实现系统安装过程的无人值守自动化安装,为了方便实验,以http服务器为基础制作ks文件

1、执行yum -y install system-config-kickstart,安装完成后执行system-config-kickstart程序。

2、点击File–>Open File–>root目录–>anaconda-ks.cfg(该ks文件由服务器端系统安装完后生成)–>点击Open载入ks文件。

3、Basic Configuration(基础配置)

4、Installation Method 安装方式

5、Boot Loader Options 默认

6、配置分区信息

7、Network Configuration 将网卡eth0 设置为dhcp模式

8、Authentication默认

9、Firewall Configuration 关闭防火墙,关闭selinux

10、Display Configuration默认

11、Package Selection 默认,参照本机ks文件

12、Pre-Installation Script和Post-Installation Script均默认设置。

13、点击File–>Save–>修改文件名为centos-6.5-ks.cfg保存至/var/www/html/centos.ks(本人自定义目录)下

14、编辑/var/www/html/centos-6.5-ks.cfg,指定repo源到我们的http服务器对应repo源路径

  5、提供PXE工作环境必须、内核以及其它所需

    1、首先,我们要将能够通过网络引导系统安装的文件pxelinux.0(类似于grub,是一种引导程序,但是它专为pxe模式下的网络系统部署提供引导)

1、安装提供该文件的程序:

yum -y install syslinux

2、找到/usr/share/syslinux/pxelinux.0文件,并将其复制到/var/lib/tftpboot/目录下。

2、将系统镜像盘中pxe模式下专用的内核文件和initrd镜像文件件复制到tftp服务器相应目录中

3、复制其它文件

1、将系统光盘镜像中的isolinux/目录下的boot.msg splash.jpg vesamenu.c32复制到/var/lib/tftpboot/目录下

2、将系统光盘镜像中的isolinux/目录下的isolinux.cfg文件拷贝至/var/lib/tftpboot/pxelinux.cfg/目录下,命名为default,用来引导客户端启动过程。

修改/var/lib/tftpboot/pxelinux/default文件,指定ks文件的加载位置

 6、使用搭建好的pxe环境安装linux 6.5 系统

   1、将服务器虚拟主机和待安装系统虚拟主机网络接入方式选择为自定义:特定虚拟网络VMnet4

2、到待安装系统虚拟主机上,进入bios,将网络启动设为首选

3、启动客户机

进入安装界面

载入内核和initrd

检索install.img

配置网络

自动创建分区

依赖关系检查

开始安装

安装软件包

等待安装完成即完成该实验!

http://www.178linux.com/4661

PXE批量部署linux操作系统的更多相关文章

  1. pxe+kickstart 自动化部署linux操作系统

    kickstart 是什么? 批量部署Linux服务器操作系统 运行模式: C/S client/server 服务器上要部署: DHCP tftp(非交互式文件共享) 安装系统的三个步骤: 1.加载 ...

  2. 使用Cobbler批量部署Linux和Windows:Cobbler服务端部署(一)

    本文记录了我使用Cobbler批量安装部署Linux和Windows系统的过程,文章主要分为三部分:Cobbler服务端的安装配置.Linux发行版CentOS和Ubuntu的自动安装部署.Windo ...

  3. (转)使用Cobbler批量部署Linux和Windows:Cobbler服务端部署(一)

    原文:http://www.cnblogs.com/pluse/p/8316914.html http://blog.51cto.com/dreamway/1166589---------Cobble ...

  4. pxe批量部署

    功能: 批量全自动安装操作系统方法: dhcp 自动分配IP tftp 微系统 用来安装系统 httpd 网络源 操作流程: #检查环境 getenforce #检查selinux systemctl ...

  5. shell基础之pxe批量部署

    通过安装及配置DHCP,tftp-server,xinetd,httpd,syslinux来实现批量安装Linux系统 #!/bin/bash #检查环境 se_state=`getenforce` ...

  6. linux部署pxe+kickstart批量安装linux操作系统

    环境 系统 centos6.6 无图形界面 ip 192.168.2.1 系统 centos7.2 有图形界面 以下命令在centos6.6上执行 1. yum -y install dhcp* tf ...

  7. PXE批量部署安装Linux系统

    PXE介绍 1)Preboot Excution Environment 预启动执行环境 2)Intel公司研发 3)基于Client/Server的网络模式,支持远程主机通过网络从远端服务器下载映 ...

  8. Cobbler自动化批量安装Linux操作系统 - 运维总结

    一.Cobbler简述 Cobbler是一个自动化和简化系统安装的工具,通过使用网络引导来控制和启动安装.Cobbler的特性包括存储库镜像.Kickstart模板和连接电源管理系统.Cobbler通 ...

  9. 使用Cobbler批量部署Linux和Windows:Windows系统批量安装(三)

    Tutorial: Installing Windows with cobbler (cobbler安装Windows) Windows系统的自动安装需要用到Win PE工具.流程如下: 定制Win ...

随机推荐

  1. __flash__removeCallback 未定义错误

    使用swfupload作为上传组件,artdialog作为弹出窗口,在关闭弹出窗口时,出现"__flash__removeCallback"未定义错误.而且是关了又出现.网上有些解 ...

  2. nginx实现日志按天切割

    背景 nginx的日志文件没有rotate功能.一段时间过后,日志将越发臃肿,一个accesslog很快就突破1G,因此有必要通过脚本实现按天切割日志. 解决思路 1  重命名日志文件,如更改为acc ...

  3. 微信支付(0923更新)商户支付密钥key的生成与设置

    微信支付(0923更新)商户支付密钥key的生成与设置 说明:新版微信支付,用户必须授权登录才能支付.需要商家自己设置商户号支付密钥. 设置商户号支付密钥方法如下: 1. 申请通过审核后,打开微信发来 ...

  4. 初试体验java多线程

    现在个人电脑以及服务器都是多核cpu,如何提高多核cpu的利用率,就要用到多线程技术了. public class TestThread1 { ; static class PThread exten ...

  5. SQL中的CASE的用法

    CASE在SQL语句中,很有点类似java等高级编程语言中的switch这样子的多分枝语句,但是有点不同的是,case后面接的是when,另外,when的后续分枝有点类似if后面接else.这个是我的 ...

  6. C#时间日期格式大全

    C#时间/日期格式大全,C#时间/日期函数大全 有时候我们要对时间进行转换,达到不同的显示效果 默认格式为:2016-7-1 14:33:34 如果要换成成201607,07-2016,2016-7- ...

  7. (转)JS保留两位小数 四舍五入函数

    本文转载自:http://www.cnblogs.com/446557021/archive/2011/10/13/2211047.html js 四舍五入函数 toFixed(),里面的参数 就是保 ...

  8. 【Spring-AOP-1】AOP相关概念

    Advice (好多中文书籍翻译为:增强处理,比如前向增强.后向增强等) 描述了Aspect类执行的具体动作.the job of an aspect. 定义了如下两个方面: what:即Aspect ...

  9. 【设计模式】单件模式(Singleton)--各类单件模式的比较

    单件模式 确保一个类只有一个实例,并提供一个安全的访问点. 线程安全+延时初始化+高性能(使用:延时初始化占位符模式) ------测试----------- 线程安全+[非]延时初始化 线程安全+延 ...

  10. 【转】Linux 的启动流程

    半年前,我写了<计算机是如何启动的?>,探讨BIOS和主引导记录的作用. 那篇文章不涉及操作系统,只与主板的板载程序有关.今天,我想接着往下写,探讨操作系统接管硬件以后发生的事情,也就是操 ...