专栏首页北京马哥教育PXE批量部署linux操作系统

PXE批量部署linux操作系统

前言 在实际生产环境中,有时候我们会碰到为几十上百甚至上千台服务器安装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

配置网络

自动创建分区

依赖关系检查

开始安装

安装软件包

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

本文分享自微信公众号 - 马哥Linux运维(magedu-Linux),作者:马帮学员-郭靖

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2015-05-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Web Cache原理,你真的造吗?

    一、Web Cache 在介绍Web cache时,我们需要简单介绍缓存的理解 1.1 缓存解释 缓存通常是基于键值对来缓存的,键通过hash计算后,存放于内存...

    小小科
  • CentOS 与 Ubuntu 有什么不同?

    豌豆贴心提醒,本文阅读时间5分钟 Linux 中的可选项似乎“无穷无尽”,因为每个人都可以通过修改一个已经发行的版本或者新的白手起家的版本(LFS) 来构建 ...

    小小科
  • MySQL/MariaDB数据库基于SSL实现主从复制

    前言 备份数据库是生产环境中的首要任务,重中之重,有时候不得不通过网络进行数据库的复制,由于MySQL/MariaDB的主从复制是明文传送的,如果在生产环境中跨...

    小小科
  • 在腾讯云Windows 2012系统上安装IIS 8.0

    Windows2012及其自带的IIS8.0是微软公司新一代的Web服务器软件,和老版本的IIS相比,有很多破天荒的新功能。随着微软宣布不再支持WindowsX...

    用户5702163
  • 脑机接口时代即将来临

    一年一度的美国神经科学学会年会于2017年11月中旬在美国首府华盛顿特区召开,来自美国的两个研究小组在会上向全世界公布了一个惊人的消息:由美国军方资助的植入式人...

    企鹅号小编
  • Laravel中运行Gulp任务的利器(一) —— Laravel Elixir简介及入门教程

    对现代开发者而言,即使是构建一个很简单的web应用,也要编写很多任务,比如压缩图片、最小化CSS和JavaScript文件、移除调试代码、运行单元测试以及处理很...

    前朝楚水
  • python-相互转换(和部分功能)知识

    py3study
  • Cheat:一个实用 Linux 命令示例集合

    我们中的许多人经常查看 man 页面 来了解命令开关(选项),它会显示有关命令语法、说明、细节和可用的选项,但它没有任何实际的例子。因此,在组合成一个我们需要的...

    企鹅号小编
  • python笔记13

    函数调用,通过“键=值”形式加以指定。可以让函数更加清晰、容易使用,同时也清除了参数的顺序需求。

    林祈
  • 几行代码搞定智能插座控制丨云开发 × 涂鸦

    在 5G 热潮的推动下,与其紧密结合的物联网(IoT)正日益成为个人和企业工作生活中的重要组成部分,它为企业和个人带来了操作流程的改进和更好的生活体验,随着人工...

    腾讯云开发TCB

扫码关注云+社区

领取腾讯云代金券