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地址)。

       blob.png

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

     blob.png

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

      blob.png

       blob.png

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

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

       blob.png

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

       blob.png

     7、验证dhcp服务器配置

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

       blob.png

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

       blob.png

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

  2、配置tftp服务

    1、yum -y install tftp tftp-server

       blob.png

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

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

       blob.png

       blob.png

       chkconfig tftp开启tftp服务

       blob.png

     3、tftp服务器测试

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

       blob.png

       本机测试成功

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

      blob.png

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

  3、配置http服务

    1、yum -y install httpd

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

       blob.png

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

       blob.png

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

       blob.png

     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文件。

       blob.png

     3、Basic Configuration(基础配置)

       blob.png

     4、Installation Method 安装方式

       blob.png 

     5、Boot Loader Options 默认

     6、配置分区信息

       blob.png

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

       blob.png

     8、Authentication默认

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

       blob.png

     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源路径

       blob.png

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

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

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

         yum -y install syslinux

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

         blob.png

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

         blob.png

     3、复制其它文件

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

         blob.png

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

         blob.png

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

         blob.png

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

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

      blob.png

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

      blob.png 

   3、启动客户机

     进入安装界面

     blob.png

     载入内核和initrd

     blob.png

     检索install.img

     blob.png

     配置网络

     blob.png

     自动创建分区

     blob.png

     依赖关系检查

     blob.png

     开始安装

     blob.png

     安装软件包

     blob.png

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




     

     

     

         

       

       

     

       

       

       

          

   

原创文章,作者:Silently,如若转载,请注明出处:http://www.178linux.com/4661

(1)
SilentlySilently
上一篇 2015-05-23 22:20
下一篇 2015-05-23 22:22

相关推荐

  • Mairadb

    Mairadb 编译安装Mairadb数据 先下载mariadb的软件包: 将软件包解压缩到/usr/local目录下 ]# tar xf mariadb-5.5.32-linux-x86_64.tar.gz -C /usr/local/ 创建连接 ]# ln -sv maria…

    Linux干货 2016-10-17
  • 浅述sed命令

    1、sed工作原理       sed(stream editor)是一种流编辑器,本身也是一个管道命令,可以分析编辑标准输入(standard input),包括对数据进行替换、删除、新增、选取特定行等等。运行时以行为单位,每次只处理一行的内容,因此它又被称为行编辑器。sed还可与正则表达式配合使用,从而简…

    Linux干货 2016-08-10
  • 如何修改linux系统主机名称及自动登录图形化界面

    编辑器:gedit(图形化编辑器)在图形界面编辑开机自动登录图形化界面(在工作中不能使用)Centos6  第一步:ls /etc/gdm/custom.conf第二步:nano /etc/gdm/custom.conf第三步:[daemon]第四步:AutomaticLoginEnable=trueAutomaticLogin=root第五步:按…

    Linux干货 2017-07-15
  • MySQL-MMM安装指南(Multi-Master Replication Manager for MySQL)

    最基本的MMM安装必须至少需要2个数据库服务器和一个监控服务器下面要配置的MySQL Cluster环境包含四台数据库服务器和一台监控服务器,如下: function ip hostname server id monitoring host 192.168.0.10 mon – master 1 192.168.0.11 db1 1 maste…

    Linux干货 2015-05-01
  • CA服务器的搭建以及证书签署、dropbear的编译安装

    CA服务器的搭建以及证书签署、dropbear的编译安装 一、CA Server和Client: 1、CA server:创建私钥CA (1)   openssl的配置文件:/etc/pki/tls/openssl.conf   如果Client端的申请是来自不同的国家,则需要将下图中红色框内的三项,由“match”改为“opt…

    Linux干货 2016-09-23
  • Linux的终端类型

    Linux的终端类型 Linux的终端类型: TTY(虚拟终端,图形终端) 早期的电子计算机的输入设备是穿孔卡片【又称霍列瑞斯式卡(Herman Hollerith)或IBM卡】,用有洞和无洞表示计算机二进制里面的0和1,以此来记录相关信息,但是这种方式很慢。 1986年股票代码被发明,人们通过电报和电传打印机发送实时股票价格,此时teletypewrite…

    Linux干货 2016-10-14