大批量部署服务器安装

  • 前言
  • 准备知识
    • 批量装机软件介绍
    • 什么是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)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



  • 注意:我们之所以使用图形化安装,是因为,图形化界面相比于直接写配置文件更方便一些,而且kickstart可以根据你的配置自动生成配置文件,省去了一些繁琐的书写,方便我们修改。












vim ks.cfg           ##查看配置文件,可以进行修改


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

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

  • 检测ks.cfg是否通过httpd共享成功:在网址输入httpd服务器的ip及ks.cfg

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

  • 我们之前的内容写过自动安装虚拟机的脚本,但是我们进入虚拟机后还需要一些设置,例如时区,硬盘分区,root密码等,所以,我们可以利用ks来进行自动化的参数设置,实现批量设置虚拟机参数。
vim vm_create.sh
#!/bin/bashvirt-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

  • (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        = dgramprotocol              = udpwait                     = yesuser                    = rootserver                 = /usr/sbin/in.tftpdserver_args        = -s /var/lib/tftpbootdisable                =noper_source         = 11cps                     = 100 2flags                   = IPv4
}


修改完重启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内核引导文件


内核引导文件default内容修改:添加http的系统源和ks.cfg系统安装配置文件脚本


测试实验

  • 首先在PXE server端需要检查:httpd、dhcpd、tftp和firewalld的状态,前三个全部开启,火墙关闭。



  • 使用VMManager开启一个虚拟机,设定默认启动方式为通过网络启动:
    图:


  • 这样,我们就利用PXE server成功实现了批量部署服务器安装了!

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

  1. [PXE] Linux(centos6)中PXE 服务器搭建,PXE安装、启动及PXE理论详解

    本篇blog主要讲述了[PXE] linux(centos)PXE无盘服务器搭建,安装,启动及pxe协议详解 , Kickstart (PXE+DHCP+TFTP+HTTP). PXE环境概述 作为中 ...

  2. windows2008部署服务之批量部署WinxpSp3---Windows2008新功能系列之六

    我们知道,如果企业需要大批量部署客户端操作系统,实现的方法很多,从最早的RIS(远程安装服务)到我们现在的WDS(Windows Deployment Services)均可实现.但究竟我们使用WDS ...

  3. Windows 10企业批量部署实战之WDS安装

    Microsoft 致力于使符合条件的正版 Windows 7 和 Windows 8/8.1 设备能够免费升级 到 Windows 10.此次升级后的Windows 10是完整版,时间范围为 Win ...

  4. 批量部署Linux操作系统的一场革命----Cobbler

    默认的rhel 光盘中没有 cobbler 软件,必须使用第三方的软件源才能安装 cobbler 软件 .但是呢光是安装这一个软件包是不能帮助我们完成大批量安装这个工作滴.那么问题来了.看见这个标题有 ...

  5. 自动化部署操作系统-Kickstart+PXE自动部署

    Kickstart+PXE自动部署 目录: 无人值守安装简介 实战:PXE批量部署linux操作系统 前言 部署dhcp服务 HTTP服务 TFTP服务 复制PXE启动时需要的文件 修改引导启动菜单 ...

  6. MDT2012+ADK8.0+WDS部署Windows客户端(一)部署概念和方法论

    Microsoft为部署windows操作系统推荐了一些有针对性的方式.这些方式的范围从在一些计算机上手动配置Windows软件,到使用自动化工具和技术将软件部署到数千台计算机. 有关四种常用部署策略 ...

  7. windows serve 2012部署操作系统之部署(三)

    前2篇是部署环境的搭建,映像文件和启动映像文件都添加好了,开始使用WDS来部署操作系统 由于DHCP服务器和WDS服务器都侦听端口UDP 67,所以正确的设置对WDS服务器的正常运行尤为重要.下面是三 ...

  8. 一般数据库服务器物理机配置,ironic部署物理机

    原标题:ironic部署物理机 ironic是openstack的帐篷项目之一,主要用来部署和管理裸机,提供统一接口,方便nova同时管理裸机和虚机,ironic的概念架构图如图1所示.本文以tecs ...

  9. 飞腾FT-2000/4处理器下(麒麟系统)Clonezilla再升龙快速备份还原及部署系统(2)--恢复还原

    飞腾FT-2000/4处理器下(麒麟系统)Clonezilla再升龙快速备份还原及部署系统(2)--恢复还原及制作快速还原ISO整合镜像文件 硬件环境:飞腾(PHYTIUM)FT-2000/4开发板( ...

最新文章

  1. 正则匹配字符串无匹配不到_实现简单正则表达式匹配
  2. 学习python: 单例设计模式
  3. sao java_Java开发中的几种对象的说明(PO,VO,DTO,BO,POJO,DAO,SAO等)
  4. als算法参数_推荐算法之ALS
  5. opensource项目_2020 Opensource.com夏季阅读列表
  6. 温度转换(摄氏温度转化氏温度)
  7. xml和html的区别和联系
  8. 小熊派STM32-OTA+IOT教程
  9. 冰汽朋克侦查机器人_冰汽时代机器流玩法 寒霜朋克机器人流玩法怎么玩
  10. 概率算法-均匀分布产生正态分布
  11. Python记录(1)-Python合并单元格
  12. 自动洗车APP开发需要满足用户哪些需求
  13. 发那科数控车ftp联网
  14. java mail 554_javaMail 163 邮箱发 qq 邮箱 总是报 554 DT:SPM 163 smtp11
  15. 在geany中使用中文注释
  16. MongoDB文档翻译-聚集-对邮编数据集进行聚集
  17. Shopkick:从eBay、Amazon和Groupon当中杀出一条血路的移动购物应用
  18. ELYNET将推出基于区块链的应用程序“CRUDE”, 启用无需SIM卡的电信网络
  19. 第一章(第一节):数、式、方程与方程组
  20. 四-3,区块链共识机制---Casper

热门文章

  1. 龙ol服务器维护补偿boss,龙OL一键端+客户端(100%架设成功)
  2. 系动词可接哪些词语作表语
  3. 16进制字符串转string
  4. 深富策略:节前大概率休整,节后有望迎来反攻
  5. 计算器(C++QT)——有全部代码哦
  6. 基于51单片机的智能电子秤设计课程设计毕业设计
  7. C语言学习之路--C语言中的格式输出
  8. 基于SSM+SpringBoot+MySQL+VUE的酒店入住信息管理系统(附论文)
  9. C#ManualResetEvent的用法
  10. python+Mysql+flask架构的在线留言板实战