PXE-网络批量装机

news2024/11/17 7:23:02

目录

【1】安装dhcp、tftp-server、httpd、syslinux、关闭防火墙、挂载镜像

【2】配置dhcp服务

【3】配置tftp服务

【4】拷贝pxe服务器的相关文件到tftp的根目录

【5】创建pxelinux.cfg文件

【6】配置httpd

【7】Kickstart自动化文件

【8】重启所有服务

【9】验证

【10】启动

【11】完成


【1】安装dhcp、tftp-server、httpd、syslinux、关闭防火墙、挂载镜像

[root@pxe~]# yum -y install dhcp tftp-server.x86_64 httpd syslinux

[root@pxe~]# systemctl stop firewalld

[root@pxe~]# cat /etc/selinux/config 
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

[root@pxe~]# mkdir -p /media/cdrom
[root@pxe~]# mount /dev/sr0 /media/cdrom

【2】配置dhcp服务

[root@pxe~]# cat /etc/dhcp/dhcpd.conf
subnet 10.0.0.0 netmask 255.255.255.0 {
    range 10.0.0.70 10.0.0.80;
    default-lease-time 3600;
    filename "pxelinux.0";
    next-server 10.0.0.10;
}

[root@pxe~]# systemctl enable --now dhcpd

【3】配置tftp服务

[root@pxe ~]# vim /etc/xinetd.d/tftp
service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = no
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /var/lib/tftpboot
        disable                 = no
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

[root@pxe~]# systemctl enable --now tftp.socket

【4】拷贝pxe服务器的相关文件到tftp的根目录

[root@pxe~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@pxe~]# cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot/
[root@pxe~]# cp /media/cdrom/isolinux/vmlinuz /var/lib/tftpboot/
[root@pxe~]# cp /media/cdrom/isolinux/initrd.img /var/lib/tftpboot/

【5】创建pxelinux.cfg文件

[root@pxe~]# cd /var/lib/tftpboot/
[root@pxe tftpboot]# mkdir pxelinux.cfg

[root@pxe tftpboot]# vim pxelinux.cfg/default
default menu.c32
timeout 300
prompt 0
 
label 1
menu label ^1) Install CentOS7
menu default
kernel vmlinuz
append initrd=initrd.img method=http://10.0.0.10/centos7 ks=http://10.0.0.10/ks.cfg

【6】配置httpd

[root@pxe tftpboot]# cd /var/www/html/
[root@pxe html]# systemctl start httpd.service
[root@pxe html]# mkdir centos7
[root@pxe html]# mount /dev/cdrom /var/www/html/centos7
  • 访问测试(10.0.0.10/centos7)

【7】Kickstart自动化文件

[root@ansible html]# cp /root/anaconda-ks.cfg /var/www/html/
[root@ansible html]# mv anaconda-ks.cfg ks.cfg
[root@ansible html]# chmod +r ks.cfg
  • 测试访问(10.0.0.10/ks.cfg),确保能正常访问

  •  修改配置ks.cfg
[root@pxe html]# vim ks.cfg 
#version=DEVEL
# System authorization information
auth --enableshadow --passalgo=sha512
# Use CDROM installation media
#cdrom
url --url http://10.0.0.10/centos7
# Use graphical install
#graphical
text
# Run the Setup Agent on first boot
firstboot --enable
ignoredisk --only-use=sda
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_US.UTF-8

# Network information
network  --bootproto=dhcp --device=eth0 --onboot=off --ipv6=auto --no-activate
network  --hostname=localhost.localdomain

# Root password
rootpw --iscrypted $6$.9w6AEAECYQiRq7S$3IzY2mG/Q4Iw7y2/kT0t3WiJ9hAhASrd0npUOK2077hDUvsfjHOFsU1Pg9PHZza8xOG2xDMwUbDpt5bvaE6vS1
# System services
services --enabled="chronyd"
# System timezone
timezone America/New_York --isUtc
# System bootloader configuration
bootloader --location=mbr --boot-drive=sda
autopart --type=lvm
# Partition clearing information
#clearpart --none --initlabel
clearpart --all --initlabel

%packages
@^minimal
@core
@development
chrony

%end

%addon com_redhat_kdump --disable --reserve-mb='auto'

%end

%anaconda
pwpolicy root --minlen=6 --minquality=50 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=50 --notstrict --nochanges --notempty
pwpolicy luks --minlen=6 --minquality=50 --notstrict --nochanges --notempty
%end
reboot

【8】重启所有服务

[root@pxe ~]# systemctl restart httpd
[root@pxe ~]# systemctl restart tftp.socket 
[root@pxe ~]# systemctl restart dhcpd

【9】验证

  • 准备一台新的虚拟机,网络模式必须跟服务端相同,客户机内存必要足够(至少2G),光盘设置自动检测

 

【10】启动

 

  •  等待安装完成(几分钟)

【11】完成

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/734529.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C#对DataGridView控件的常用操作

1998年我开始接触Powerbuilder 6.5之前,使用过FoxPro 2.5B和Visual Base 5,比较而言,对数据库应用的开发,FoxPro 2.5B对开发人员很友好,开发程序速度快,Visual Base 5则几乎没有多少的优势,用上…

webpack5搭建与基本配置

webpack基础构建 新建文件夹进入文件夹查看是否安装node,命令:node-v创建package.json文件,命令:npm init -y安装webpack和webpack-cli,(命令自动创建出package-lock.json文件和node_modules文件夹&#x…

残差网络(ResNet) -深度学习(Residual Networks (ResNet) – Deep Learning)

在第一个基于cnn的架构(AlexNet)赢得ImageNet 2012比赛之后,每个随后的获胜架构都在深度神经网络中使用更多的层来降低错误率。这适用于较少的层数,但当我们增加层数时,深度学习中会出现一个常见的问题,称为消失/爆炸梯度。这会导…

MachineLearningWu_6_FeatureScaling

x.1 feature scale 接下俩我们将考虑数据的不一致性,例如有的数据的范围很大,可能分布在好几千,但是我们的weight矩阵最好是在[-1, 1]的小数,如果数值太大就会导致我们的weight变化也很大,如下面这个例子就并不好&…

编译型语言和解释型语言的区别

1.操作系统怎么识别编程语言 计算机能识别二进制数,但是无法识别编程语言,比如你把 01000001100通过相关手段输入计算机中计算机就能识别其中的含义并且执行对应的命令,但是你输入 print(hello world)计算机就无法识别其含义,这就…

基于springboot+mybatis-plus+mysql+vue音乐网站管理系统

基于springbootmybatis-plusmysqlvue音乐网站管理系统 一、系统介绍1、系统主要功能:2.涉及技术框架:3.项目说明: 二、功能展示三、其它系统四、获取源码 一、系统介绍 1、系统主要功能: 音乐播放 用户登录注册 用户信息编辑、头…

4. PS切图

4.1常见的图片格式 jpg图像格式: JPEG ( .JPG )对色彩的信息保留较好,高清,颜色较多,我们产品类的图片经常用jpg格式的gif图像格式 : GIF格式最多只能储存256色,所以通常用来显示简单图形及字体,但是可以保存透明背景和动画效果,实际经常用于一些图片小动画效果png图像格式&am…

Tomcat 线程池

目录 概述 tomcat线程池工作原理 关键源码 Connector 配置 Executor 线程配置 tomcat核心组件(题外) 概述 Tomcat 是一个流行的 Java Web 服务器,它使用线程池来处理客户端请求。线程池是一组预先创建的线程,用于执行并发任…

FreeRTOS ~(七)互斥量 ~ (1/3)互斥量解决互斥缺陷

前情提要 FreeRTOS ~(四)同步互斥与通信 ~ (2/3)互斥的缺陷 FreeRTOS ~(五)队列的常规使用 ~ (2/5)队列解决互斥缺陷 FreeRTOS ~(六)信号量 ~ (2/…

Android Camera2 获取RAW数据

这边文章主要记录下在Android系统上,如何通过Camera2 API去拿到RAW数据,也是当个备忘。 平时我们拿实时预览数据,更多的是获取yuv数据。一般涉及到raw域算法在APP层实现的时候,我们才会用到获取raw数据。 APP上集成Raw算法的思路…

【CSDN新星计划】初阶牛C/C++赛道——顺序程序设计(运算符和表达式)

目录 🍉2.运算符和表达式 2.1 C运算符 2.2基本的算术运算符 2.3自增( )自减( - - )运算符 2.4算术表达式和运算符的优先级与结合性 2.运算符和表达式 2.1 C运算符 C语言提供了以下运算符: (1)算术…

印度反垄断机构偏袒亚马逊,谷歌对滥用安卓市场地位罚款提出质疑

根据路透社消息,谷歌指控印度反垄断机构在其安卓系统调查中对亚马逊持偏袒态度,并向印度最高法院提起诉讼,对其关于滥用安卓市场地位的罚款提出质疑。 印度竞争委员会(CCI)最近要求谷歌改变商业模式,称谷歌…

结合具体场景举例说明chatgpt预训练模型中Tokenization的原理

假设我们有一个场景,Alice想向Chatbot询问一部电影的推荐。她发送了一条消息:“你好,能给我推荐一部好看的电影吗?” 在这个场景中,Chatbot使用了ChatGPT预训练模型。首先,Chatbot需要对Alice的消息进行Tok…

【力扣周赛】第 108 场双周赛

文章目录 Q1:6913. 最长交替子序列思路竞赛时代码代码优化 Q2:6469. 重新放置石块思路竞赛时代码 Q3:6923. 将字符串分割为最少的美丽子字符串解法1—— dfs回溯 剪枝 判断解法2——动态规划 Q4:6928. 黑格子的数目代码优化 成绩…

Jenkins持续集成

文章目录 Jenkins介绍Jenkins的特征 Jenkins架构Gitlab安装1. Gitlab代码托管服务器安装2. Gitlab添加组、创建用户、创建项目 jenkins安装安装JenkinsJenkins插件管理Jenkins用户权限管理Jenkins凭证管理安装Git插件和Git工具设置SSH免密登录 Maven安装和配置JenkinsDockerspr…

【数据结构】栈和队列详解

⭐️ 往期相关文章 ✨链接1:数据结构和算法的概念以及时间复杂度空间复杂度详解 ✨链接2:【数据结构】手撕顺序表 ✨链接3:【数据结构】手撕单链表 ✨链接4:【数据结构】双向带头循环链表 ⭐️ 栈和队列 🌠 栈 栈是…

react-native项目手机预览

初始化项目 使用 expo 初始化 react-native 项目,https://reactnative.cn/docs/environment-setup 运行项目 执行 start 命令运行项目 拿起你的iPhone手机,安装 expo APP,https://expo.dev/client 或者到 APP store 搜索下载。下载完成之…

基于TCP协议的聊天系统TCP-ChatSystem

基于TCP协议的点对点聊天系统 网络协议:TCP 聊天形式:点对点 所用技术:socket、多路转接、线程池、互斥锁、条件变量、MFC等。 功能点:注册、登录、添加好友、聊天等。 实现示意图 客户端登陆注册消息流转图: 客…

【MATLAB第54期】基于LSTM长短期记忆网络的多输入多输出滑动窗口回归预测模型

【MATLAB第54期】基于LSTM长短期记忆网络的多输入多输出滑动窗口回归预测模型 往期第13期已实现多输入单输出滑动窗口回归预测 本次在此代码基础上,新增多输出滑动窗口功能。 多输入单输出滑动窗口回归预测 一、实现效果 往期文章提到了对单列时间序列数据进行滑…

spdlog入门教程(1)

spdlog入门教程(1) 文章目录 spdlog入门教程(1)1、前言1.1 为什么要使用日志库1.2 尽量使用通用日志框架而不要自己实现1.3 spdlog概述1.4 地址 2、源码编译配置spdlog3、在Qt中使用spdlog1.1 验证spdlog是否配置成功1.2 将日志输…