如何进行一次大批量部署服务器安装?

大批量部署服务器安装

  • 前言
  • 准备知识
    • 批量装机软件介绍
    • 什么是PXE?
    • PXE的工作流程
    • PXE必要条件
    • 什么是TFTP?
    • 什么是syslinux?
  • 批量部署服务器安装步骤:
    • 自动应答脚本制作工具kickstart
      • 利用kickstart优化自动安装虚拟机脚本
    • 配置DHCP服务器
    • 配置HTTPD
    • 配置TFTP服务器
      • TFTP目录文件准备
  • 测试实验

前言

  • 楼主所在实验室的机房近期进来大批量的新服务器,装机成了最大烦恼,因为总是遇到一些机械式的重复工作。如何进行一次大批量部署服务器安装成了楼主现在必须要解决的问题!于是询问老师和查阅资料,成功学会了这门批量装机的手艺。让开,我要开始装B喽哈哈~

准备知识

批量装机软件介绍

  • Redhat主要有两种方式:kickstart和Cobbler。

  • kickstart是一种无人值守的安装方式。它的工作原理是在安装过程中记录人工干预填写的各种参数,并生成一个名为ks.cfg的文件。如果在自动安装过程中出现要填写参数的情况,安装程序首先会去查找ks.cfg文件,如果找到合适的参数,就采用所找到的参数;如果没有找到合适的参数,便会弹出对话框让安装者手工填写。所以,如果ks.cfg文件涵盖了安装过程中所有需要填写的参数,那么安装者完全可以只告诉安装程序从何处下载ks.cfg文件。等安装完毕,安装程序会根据ks.cfg中的设置重启/关闭系统,并结束安装。(楼主使用这种方法)

  • Cobbler集中和简化了通过网络安装操作系统需要使用到的DHCP、TFTP和DNS服务的配置。Cobbler不仅有一个命令行界面,还提供了一个Web界面,大大降低了使用者的入门水平。Cobbler内置了一个轻量级配置管理系统,但它也支持和其它配置管理系统集成。(这里不做介绍)

什么是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最直接的表现是,在网络环境下工作站可以省去硬盘,但又不是通常所说的无盘站的概念,因为使用该技术的PC在网络方式下的运行速度要比有盘PC快3倍以上。当然使用PXE的PC也不是传统意义上的TERMINAL终端,因为使用了PXE的PC并不消耗服务器的CPU,RAM等资源,故服务器的硬件要求极低。
  • PXE启动原理
    当计算机引导时,BIOS把 PXE Client 调入内存中执行,然后由 PXE Client 将放置在远端的文件通过网络下载到本地运行。
  • kickstart实现方式依赖于PXE环境。通过网络接口启动计算机,不依赖本地存储设备(如硬盘)或本地已安装的操作系统;PXE客户端会调用网际协议(IP)、用户数据报协议(UDP)、动态主机设定协议(DHCP)、小型文件传输协议(TFTP)等网络协议;PXE客户端(client)这个术语是指机器在PXE启动过程中的角色。一个PXE客户端可以是一台服务器、笔记本电脑或者其他装有PXE启动代码的机器(我们电脑的网卡)

PXE的工作流程

  • PXE client是需要安装Linux的计算机,TFTP Server、DHCP Server及HTTPD Server部署在在PXE Server端。Bootstrap文件、配置文件以及Linux根文件系统都放置在Linux Server上TFTP服务器的根目录/var/lib/tftpboot/下,而ks.cfg 及 系统内核部署在HTTPD server目录/var/www/html/。
    如何进行一次大批量部署服务器安装?_第1张图片

  • (1)PXE Client向DHCP发送请求 PXE Client从自己的PXE网卡启动,通过PXE BootROM(自启动芯片)会以UDP(简单用户数据报协议)发送一个广播请求,向本网络中的DHCP服务器索取IP。

  • (2)DHCP服务器提供信息 DHCP服务器收到客户端的请求,验证是否来至合法的PXE Client的请求,验证通过它将给客户端一个“提供”响应,这个“提供”响应中包含了为客户端分配的IP地址、pxelinux启动程序(TFTP)位置,以及配置文件所在位置。

  • (3)PXE客户端请求下载启动文件 客户端收到服务器的“回应”后,会回应一个帧,以请求传送启动所需文件。这些启动文件包括:pxelinux.0、pxelinux.cfg/default、vmlinuz、initrd.img等文件。

  • (4)Boot Server响应客户端请求并传送文件 当服务器收到客户端的请求后,他们之间之后将有更多的信息在客户端与服务器之间作应答, 用以决定启动参数。BootROM由TFTP通讯协议从Boot Server下载启动安装程序所必须的文件(pxelinux.0、pxelinux.cfg/default)。default文件下载完成后,会根据该文件中定义的引导顺序,启动Linux安装程序的引导内核。

  • (5)请求下载自动应答文件 客户端通过pxelinux.cfg/default文件成功的引导Linux安装内核后,安装程序首先必须确定你通过什么安装介质来安装linux,如果是通过网络安装(NFS, FTP, HTTP),则会在这个时候初始化网络,并定位安装源位置。接着会读取default文件中指定的自动应答文件ks.cfg所在位置,根据该位置请求下载该文件。

  • (6)客户端安装操作系统 将ks.cfg文件下载回来后,通过该文件找到OS Server,并按照该文件的配置请求下载安装过程需要的软件包。 OS Server和客户端建立连接后,将开始传输软件包,客户端将开始安装操作系统。安装完成后,将提示重新引导计算机。

PXE必要条件

  • pxe client必须支持pxe用户端功能,并且开机时选择网络启动,这样系统才能以网络的方式进入pxe启动程序

  • pxe服务器必须至少提供DHCP、TFTP、HTTPD的服务才行,且其中

    (1)DHCP服务器必须能够除为pxe client分配ip地址外,还需告知tftp所在的位置(即告诉pxelinux.0的文件位置)

    (2)TFTP服务器则为pxe client 提供bootloader 及 kernel 等重要文件下载服务

    (3)使用HTTPD服务器提供pxe client所需程序及软件来源(共享源)

什么是TFTP?

  • 百度百科:TFTP是一个传输文件的简单协议,它基于UDP协议而实现,但是我们也不能确定有些TFTP协议是基于其它传输协议完成的。此协议设计的时候是进行小文件传输的。因此它不具备通常的FTP的许多功能,它只能从文件服务器上获得或写入文件,提供不复杂、开销不大的文件传输服务。端口号为69

什么是syslinux?

  • 百度百科:syslinux是一个功能强大的引导加载程序,而且兼容各种介质。它的目的是简化首次安装Linux的时间,并建立修护或其它特殊用途的启动盘。

批量部署服务器安装步骤:

自动应答脚本制作工具kickstart

  • 使用yum安装kickstart
    如何进行一次大批量部署服务器安装?_第2张图片
    如何进行一次大批量部署服务器安装?_第3张图片
    如何进行一次大批量部署服务器安装?_第4张图片
    如何进行一次大批量部署服务器安装?_第5张图片
  • 注意:我们之所以使用图形化安装,是因为,图形化界面相比于直接写配置文件更方便一些,而且kickstart可以根据你的配置自动生成配置文件,省去了一些繁琐的书写,方便我们修改。
    如何进行一次大批量部署服务器安装?_第6张图片
    如何进行一次大批量部署服务器安装?_第7张图片
    如何进行一次大批量部署服务器安装?_第8张图片
    如何进行一次大批量部署服务器安装?_第9张图片
    如何进行一次大批量部署服务器安装?_第10张图片
    如何进行一次大批量部署服务器安装?_第11张图片
    如何进行一次大批量部署服务器安装?_第12张图片
    如何进行一次大批量部署服务器安装?_第13张图片
    如何进行一次大批量部署服务器安装?_第14张图片
    如何进行一次大批量部署服务器安装?_第15张图片
    如何进行一次大批量部署服务器安装?_第16张图片
    如何进行一次大批量部署服务器安装?_第17张图片
    在这里插入图片描述
vim ks.cfg			##查看配置文件,可以进行修改

如何进行一次大批量部署服务器安装?_第18张图片
如何进行一次大批量部署服务器安装?_第19张图片

ksvalidator  ks.cfg			##进行语法错误检测

在这里插入图片描述

systemctl  start  httpd					##注意:之前需要开启httpd服务,/var/www/html/目录是在开启httpd服务的情况下自动生成
vim  /etc/httpd/conf/httpd.conf			##查看httpd的配置文件

如何进行一次大批量部署服务器安装?_第20张图片

  • 检测ks.cfg是否通过httpd共享成功:在网址输入httpd服务器的ip及ks.cfg
    如何进行一次大批量部署服务器安装?_第21张图片

利用kickstart优化自动安装虚拟机脚本

  • 我们之前的内容写过自动安装虚拟机的脚本,但是我们进入虚拟机后还需要一些设置,例如时区,硬盘分区,root密码等,所以,我们可以利用ks来进行自动化的参数设置,实现批量设置虚拟机参数。
vim vm_create.sh
#!/bin/bash
 virt-install \
 --name $1 \
 --ram 1024 \
 --vcpus 1 \
 --disk /var/lib/libvirt/images/$1.qcow2,bus=virtio,size=8 \
 --network bridge=br0,model=virtio \
 --location http://172.25.254.100/westos/ \				#指定网络系统镜像源,使用http协议
 --extra-args "ks=http://172.25.254.100/ks.cfg"  &			##执行自动应答脚本,指定参数设置,读取ks.cfg
  • 利用这个我们就可以更彻底的自动安装虚拟机了。

配置DHCP服务器

  • (1)使用yum安装DHCP服务
yum install dhcpd
  • (2)修改DHCP的配置文件
vim  /etc/dhcp/dhcpd.conf

如何进行一次大批量部署服务器安装?_第22张图片

  • (3)启动DHCP服务,关闭火墙
systemctl  start  dchpd
systemctl  stop  firewalld

配置HTTPD

  • (1)使用yum安装HTTPD服务
yum  install  httpd
  • (2)启动HTTPD服务
systemctl  start  httpd
  • (3)在共享目录/var/www/html/中创建一个目录/westos并挂载系统源
mkdir  /var/www/html/westos
mount  /dev/sr0  /var/www/html/westos   

配置TFTP服务器

  • (1)使用yum安装TFTP服务
yum  install  tftp
  • (2)启动TFTP服务
systemctl  start  tftp
  • (3)注意:7.0版本及以前的需要开启xinetd服务,才可以开启TFTP服务,7.0版本以后不需要
vim  /etc/xinetd.d/tftp

修改文配置文件:disable改为no,其他不变

service tftp
{
        socket_type        = dgram
        protocol              = udp
        wait                     = yes
        user                    = root
        server                 = /usr/sbin/in.tftpd
        server_args        = -s /var/lib/tftpboot
        disable                =no
        per_source         = 11
        cps                     = 100 2
        flags                   = IPv4
}

如何进行一次大批量部署服务器安装?_第23张图片
修改完重启xinetd:systemctl restart xinetd

TFTP目录文件准备

  • (1)使用 syslinux 提供的bootstart
yum  install  syslinux				#获得pxelinux.0安装包
rpm  -ql  syslinux					#查看syslinux安装路径:/usr/share/syslinux——pxelinux.0的存储目录
cp  /usr/share/syslinux/pxelinux.0  /var/lib/tftpboot/  			# 复制pxelinux.0到 /var/lib/tftpboot 目录 

  • (2)配置pxelinux.cfg文件
1.	mkdir  /var/lib/tftpboot/pxelinux.cfg    		##创建pxelinux.cfg目录
2.	cp  /var/www/html/westos/isolinux/*  /var/lib/tftpboot/			
3.	cp  /var/lib/tftpboot/isolinux.cfg   /var/lib/tftpboot/pxelinux.cfg/default			##把isolinux.cfg引导文件拷贝到tftpd存储目录下的pxelinux.cfg文件中,并命名为default
4.	vim  /var/lib/tftpboot/pxelinux.cfg/default   				# 修改linux内核引导文件

如何进行一次大批量部署服务器安装?_第24张图片
内核引导文件default内容修改:添加http的系统源和ks.cfg系统安装配置文件脚本

如何进行一次大批量部署服务器安装?_第25张图片
如何进行一次大批量部署服务器安装?_第26张图片

测试实验

  • 首先在PXE server端需要检查:httpd、dhcpd、tftp和firewalld的状态,前三个全部开启,火墙关闭。
    如何进行一次大批量部署服务器安装?_第27张图片
    如何进行一次大批量部署服务器安装?_第28张图片
    如何进行一次大批量部署服务器安装?_第29张图片
    如何进行一次大批量部署服务器安装?_第30张图片
  • 使用VMManager开启一个虚拟机,设定默认启动方式为通过网络启动:
    图:
    如何进行一次大批量部署服务器安装?_第31张图片
    如何进行一次大批量部署服务器安装?_第32张图片
    如何进行一次大批量部署服务器安装?_第33张图片
  • 这样,我们就利用PXE server成功实现了批量部署服务器安装了!

你可能感兴趣的:(linux)