热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

1分钟快速装机100台

目录一、pxe远程安装服务1、概念2、优点3、前提条件4、基本部署过程5、客户机和服务机的工作流程6、搭建PXE远程服务环境第一步:配置双网卡一个作

目录

一、pxe远程安装服务

1、概念

2、优点

3、前提条件

4、基本部署过程

5、客户机和服务机的工作流程

6、搭建PXE远程服务

环境

第一步:配置双网卡一个作用是dhcp,一个是使用网络源安装环境包

 第二步、安装并启用DHCP服务

第三步、安装并启用TFTP服务

第四步、准备PXE引导程序的pxelinux.0 ,引导客户端如何安装系统

第五步、配置启动菜单文件

第六步、安装ftp服务,准备centos7安装源

二、实现kickstart自动安装

1、概念

2、实现Kickstart无人值守安装

第一步、安装客户机,选择仅主机模式,和我们前面服务器设置的同一网段

 第二步、安装程序和添加ks引导参数

第三步、定义自动化安装步骤(服务器端)

 第四步、配置软件包,需要编辑ks.cfg文件,添加至最后

第五步、就是重新启动你要得客户机,它就会自己安装了

总结


今天分享的内容虽然不常用,但是个人感觉很有趣,我前面分享过如何装虚拟机,但是我们每装一台都需要很长时间,今天就给大家分享一下pxe批量装机的方法

一、pxe远程安装服务

1、概念

PXE是由Intel 公司开发的网络引导技术,工作在 client/Server模式,允许客户机通过网络从远程服务器下载引导镜像,并加载安装文件或者整个操作系统。

PKE严格来说并不是一种安装方式,而是一种引导的方式。进行 PXE安装的必要条件是要安装
的计算机中包含一个 PXE支持的网卡(NIC),即网卡中必须要有 PXE Client。PXE (Pre-boot ExecutionEnvironment)协议使计算机可以通过网络启动。

协议分为 client 和 server端,PXE client 在网卡的 ROM中,当计算机引导时,BIoS把 PKEclient 调入内存执行,由 PXE client 将放置在远端的文件通过网络下载到本地运行。

运行 PXE协议需要设置 DHCP服务器和TFTP服务器。DHCP服务器用来给PXE client(将
要安装系统的主机)分配一个IP地址, 由于是给 PXE client 分配IP地址,所以在配置 DHCP服务器时需要增加相应的PXE 设置。

此外,在 PxE client 的 ROM中,已经存在了TFTP Client。PXE Client通过TFTP 协议到TFTP Server 上下载所需的文件。

2、优点

规模化:同时装配多台服务器
自动化:安装系统、配置各种服务
远程实现:不需要光盘、U盘等安装介质

3、前提条件

客户机的网卡支持PXE协议(集成BOOTROM芯片),且主板支持网络引导。

网络中有一台DHCP 服务器以便为客户机自动分配地址、指定引导文件位置。

服务器通过TFTP(Trivial File Transfer Protocol,简单文件传输协议)提供引导镜像文件的下载。

其中,第一个条件实际上是硬件要求,目前绝大多数服务器和大多数PC 都能够提供此支持,只需在BIOS设置中允许从Network或者LAN启动即可。

4、基本部署过程

准备CentOS 7安装源(YUM仓库)

安装并启用TFTP服务

提供Linux内核、PXE引导程序等

安装并启用DHCP服务

配置启动菜单

5、客户机和服务机的工作流程

PXE客户机发出DHCP请求,向DHCP服务器申请IP地址

DHCP服务器响应PXE客户机的请求,自动从IP地址池中分配一个IP地址给PXE客户机,且告知PXE客户机:TFTP服务器的IP地址和PXE引导程序文件pxelinux.0,默认在TFTP共享目录/var/lib/tftpboot/下

PXE客户机向TFTP服务器发起获取pxelinux.0引导程序文件的请求

TFTP服务器响应PXE客户机的请求,将其共享的pxelinux.0文件传输给PXE客户机

PXE客户机通过网络来启动到系统安装主界面

PXE客户机向文件共享服务器(ftp、http、nfs等)发起获取centos或windows系统安装文件的请求

文件共享服务响应PXE客户机的请求,将共享的系统安装文件传输给PXE客户机

PXE客户机进入到安装提示向导界面,用户需要手动来完成系统安装的操作


6、搭建PXE远程服务


环境

一台作为pxe服务器,一台作为裸金属客户机,绑定同一块网卡,裸金属客户机vmnet1网卡取消勾选dhcp配置关闭selinux和防火墙

一台主机

配置双网卡一个作用是dhcp,一个是使用网络源安装环境包
DHCP部署
tftp-server——服务器通过TFTP(简单文件传输协议)提供引导镜像文件的下载

syslinux——用来提供pxe的引导程序
xinetdl——用来托管tftp
vsftpd——用来放置安装镜像,通过ftp访问镜像安装7) kickstart /用来无人值守安装
 

第一步:配置双网卡一个作用是dhcp,一个是使用网络源安装环境包

 

 

 第二步、安装并启用DHCP服务

[root@localhost ~]# yum install dhcp -y
[root@localhost ~]# cp -rfp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc
/dhcp/dhcpd.confcp:是否覆盖"/etc/dhcp/dhcpd.conf"? y
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf subnet 192.168.28.0 netmask 255.255.255.0 {range 192.168.28.10 192.168.28.100;option routers 192.168.28.28;next-server 192.168.28.28; #指定tftp服务器的地址(*)filename "pxelinux.0"; #指定pxe引导程序的文件名(*)
}[root@localhost ~]# systemctl start dhcpd
[root@localhost ~]# systemctl status dhcpd
[root@localhost ~]# systemctl enable dhcpd
[root@localhost ~]# systemctl is-enabled dhcpd

第三步、安装并启用TFTP服务

[root@localhost ~]# yum install tftp-server -y
[root@localhost ~]# vim /etc/xinetd.d/tftp #主要改disableservice tftp
{socket_type = dgramprotocol = udpwait = no
//wait no表示客户机可以多台一起连接,yes表示客户机只能一台一台连接,表示是否开启多线程一起工作,否则需要等待user = rootserver = /usr/sbin/in.tftpdserver_args = -s /var/lib/tftpboot
//指定TFTP根目录(引导文件的存储路径) -c允许上传disable = no //disable no表示开启TFTP服务 per_source = 11
//通过限制一个主机的最大连接数,从而防止某个主机独占某个服务,这里每个IP地址的连接数是11个cps = 100 2
//表示服务器最多启动100个连接,如果达到这个数目将停止启动新服务2秒。在此期间不接受任何请求flags = IPv4
}[root@localhost ~]# mount /dev/sr0 /mnt
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# cd /mnt/images/pxeboot/
[root@localhost pxeboot]# ls
initrd.img TRANS.TBL vmlinuz
[root@localhost pxeboot]# cp initrd.img vmlinuz /var/lib/tftpboot/[root@localhost pxeboot]# systemctl start tftp
[root@localhost pxeboot]# systemctl status tftp
[root@localhost pxeboot]# systemctl enable tftp
[root@localhost pxeboot]# systemctl is-enabled tftp

第四步、准备PXE引导程序的pxelinux.0 ,引导客户端如何安装系统

[root@localhost ~]# yum install syslinux -y
[root@localhost ~]# rpm -ql syslinux |grep pxelinux
/usr/share/doc/syslinux-4.05/pxelinux.txt
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/gpxelinuxk.0
/usr/share/syslinux/pxelinux.0
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

第五步、配置启动菜单文件

[root@localhost ~]# cd /var/lib/tftpboot/
[root@localhost tftpboot]# ls
initrd.img pxelinux.0 vmlinuz
[root@localhost tftpboot]# mkdir pxelinux.cfg
[root@localhost tftpboot]# ls
initrd.img pxelinux.0 pxelinux.cfg vmlinuz
[root@localhost tftpboot]# vim pxelinux.cfg/default
[root@localhost tftpboot]# cat pxelinux.cfg/default
default auto #指定默认入口名称 ,对应下面的label auto
prompt 1 #设置是否等待用户选择,1 表示等待用户控制,0表示不等待用 户控制,安装时会出现boot:如果按回车表示选择auto模式label auto #默认的图形安装kernel vmlinuz append initrd=initrd.img method=ftp://192.168.28.28/centos7label linux text #文本安装模式,出现boot:时输入linux textkernel vmlinuz append text initrd=initrd.img method=ftp://192.168.28.28/centos7label linux rescue #救援模式,出现boot:时输入linux rescuekernel vmlinuz append rescue initrd=initrd.img method=ftp://192.168.28.28/centos7

第六步、安装ftp服务,准备centos7安装源

[root@localhost ~]# yum install vsftpd -y
[root@localhost ~]# mkdir /var/ftp/centos7
[root@localhost ~]# cp -rf /mnt/* /var/ftp/centos7[root@localhost ~]# systemctl start vsftpd
[root@localhost ~]# systemctl status vsftpd
[root@localhost ~]# systemctl enable vsftpd
[root@localhost ~]# systemctl is-enabled vsftpd

二、实现kickstart自动安装

1、概念

KickStart是一种无人职守安装方式。KickStart的工.作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为 ks.cfg 的文件;在其后的安装过程中(不只局限于生成KickStart安装文件的机器)当出现要求填写参数的情况时,安装程序会首先去查找KickStart 生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。
这样,如果Kickstart文件涵盖了安装过程中出现的所有需要填写的参数时,安装者完全可以只告诉
安装程序从何处取ks.cfg文件,然后去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中设置的重启选项来重启系统,并结束安装。
 

2、实现Kickstart无人值守安装


第一步、安装客户机,选择仅主机模式,和我们前面服务器设置的同一网段

 第二步、安装程序和添加ks引导参数

[root@localhost tftpboot]# yum install system-config-kickstart -y[root@localhost tftpboot]# vim pxelinux.cfg/default
[root@localhost tftpboot]# cat pxelinux.cfg/default
default auto
prompt 0 #自动label autokernel vmlinuz append initrd=initrd.img method=ftp://192.168.28.28/centos7 ks=ftp://192
.168.28.28/ks.cfglabel linux textkernel vmlinuz append text initrd=initrd.img method=ftp://192.168.28.28/centos7 ks=ftp:
//192.168.28.28/ks.cfglabel linux rescuekernel vmlinuz append rescue initrd=initrd.img method=ftp://192.168.28.28/centos7 ks=ft
p://192.168.28.28/ks.cfg

第三步、定义自动化安装步骤(服务器端)

 

 

 

 

 

 第四步、配置软件包,需要编辑ks.cfg文件,添加至最后

[root@localhost ftp]# cd /root
[root@localhost ~]# ls
anaconda-ks.cfg 公共 视频 文档 音乐
initial-setup-ks.cfg 模板 图片 下载 桌面
[root@localhost ~]# vim anaconda-ks.cfg

[root@localhost ~]# vim /var/ftp/ks.cfg #添加刚刚的配置到行尾systemctl restart vsftpd && systemctl restart dhcpd && systemctl restart tftp

第五步、就是重新启动你要得客户机,它就会自己安装了


总结

最后客户机安装的时候,因为我这边做的事例,所有需要配置同一网段,但是在公司里,我们基本都是在同一网段,所以我们只要开机就会自己安装系统了,是不是感觉100台也不够安装







推荐阅读
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • 零拷贝技术是提高I/O性能的重要手段,常用于Java NIO、Netty、Kafka等框架中。本文将详细解析零拷贝技术的原理及其应用。 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • 在 CentOS 6.4 上安装 QT5 并启动 Qt Creator 时,可能会遇到缺少 GLIBCXX_3.4.15 的问题。这是由于系统中的 libstdc++.so.6 版本过低。本文将详细介绍如何通过更新 GCC 版本来解决这一问题。 ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • 在使用Eclipse进行调试时,如果遇到未解析的断点(unresolved breakpoint)并显示“未加载符号表,请使用‘file’命令加载目标文件以进行调试”的错误提示,这通常是因为调试器未能正确加载符号表。解决此问题的方法是通过GDB的`file`命令手动加载目标文件,以便调试器能够识别和解析断点。具体操作为在GDB命令行中输入 `(gdb) file `。这一步骤确保了调试环境能够正确访问和解析程序中的符号信息,从而实现有效的调试。 ... [详细]
  • 深入解析C语言中结构体的内存对齐机制及其优化方法
    为了提高CPU访问效率,C语言中的结构体成员在内存中遵循特定的对齐规则。本文详细解析了这些对齐机制,并探讨了如何通过合理的布局和编译器选项来优化结构体的内存使用,从而提升程序性能。 ... [详细]
  • SecureCRT是一款功能强大的终端仿真软件,支持SSH1和SSH2协议,适用于在Windows环境下高效连接和管理Linux服务器。该工具不仅提供了稳定的连接性能,还具备丰富的配置选项,能够满足不同用户的需求。通过SecureCRT,用户可以轻松实现对远程Linux系统的安全访问和操作。 ... [详细]
  • Java Socket 关键参数详解与优化建议
    Java Socket 的 API 虽然被广泛使用,但其关键参数的用途却鲜为人知。本文详细解析了 Java Socket 中的重要参数,如 backlog 参数,它用于控制服务器等待连接请求的队列长度。此外,还探讨了其他参数如 SO_TIMEOUT、SO_REUSEADDR 等的配置方法及其对性能的影响,并提供了优化建议,帮助开发者提升网络通信的稳定性和效率。 ... [详细]
  • 基于iSCSI的SQL Server 2012群集测试(一)SQL群集安装
    一、测试需求介绍与准备公司计划服务器迁移过程计划同时上线SQLServer2012,引入SQLServer2012群集提高高可用性,需要对SQLServ ... [详细]
  • IOS Run loop详解
    为什么80%的码农都做不了架构师?转自http:blog.csdn.netztp800201articledetails9240913感谢作者分享Objecti ... [详细]
  • 本文回顾了作者初次接触Unicode编码时的经历,并详细探讨了ASCII、ANSI、GB2312、UNICODE以及UTF-8和UTF-16编码的区别和应用场景。通过实例分析,帮助读者更好地理解和使用这些编码。 ... [详细]
  • 单片微机原理P3:80C51外部拓展系统
      外部拓展其实是个相对来说很好玩的章节,可以真正开始用单片机写程序了,比较重要的是外部存储器拓展,81C55拓展,矩阵键盘,动态显示,DAC和ADC。0.IO接口电路概念与存 ... [详细]
  • php更新数据库字段的函数是,php更新数据库字段的函数是 ... [详细]
  • 在Linux系统中避免安装MySQL的简易指南
    在Linux系统中避免安装MySQL的简易指南 ... [详细]
author-avatar
泉怪的皮毛_884
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有