pxe linux7,PXE+Kickstart 实现自动安装系统

部署准备

服务器

操作系统:rhel7.7

软件准备: rhel-server-7.5-x86_64-dvd.iso、rhel-server-7.7-x86_64-dvd.iso

客户机

硬件配置:至少2G以上内存

基础环境准备

关闭selinux

sed -i “s/SELINUX=enforcing/SELINUX=disabled/g” /etc/selinux/config

setenforce 0

关闭防火墙

yum remove -y firewalld

配置网络

nmcli con add type ethernet ifname eno1 con-name eno1 ipv4.method manual ipv4.addr 192.168.100.0/24

安装yum软件环境

准备镜像源

已将rhel-server-7.5-x86_64-dvd.iso和rhel-server-7.7-x86_64-dvd.iso传入服务器

mkdir -p /mnt/rhel77

mkdir -p /mnt/rhel75

mount -t loop rhel-server-7.7-x86_64-dvd.iso /mnt/rhel77

mount -t loop rhel-server-7.5-x86_64-dvd.iso /mnt/rhel75

配置yum源

cat << EOF > /etc/yum.repos.d/rhel77.repo

redhat-Base.repo

[base]

name=Redhat-$releasever

failovermethod=priority

baseurl=file:///mnt/rhel77/

gpgcheck=0

enabled=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

EOF

安装httpd服务

yum clean all

yum repolist

yum install -y wget httpd rsync createrepo

http源配置

mkdir -p /var/www/html/yum/rhel77

mkdir -p /var/www/html/yum/rhel75

rsync -aS /mnt/rhel77/ /var/www/html/yum/rhel77/

rsync -aS /mnt/rhel75/ /var/www/html/yum/rhel75/

createrepo -g /var/www/html/yum/rhel77/6d132b085489dcfe4a0ee2b4c38d9578c38ab83cebe4df87e3a409b48e8fee57-comps-Server.x86_64.xml /var/www/html/yum/rhel77/

createrepo -g /var/www/html/yum/rhel75/2a2dc8f8a66f9c4d8b7a8ac2ec308594b97c344ec0810266cdf0795d9f77e965-comps-Server.x86_64.xml /var/www/html/yum/rhel75/

配置repo文件

mkdir -p /var/www/html/repo

cat << EOF > /var/www/html/repo/rhel77.repo

redhat-Base.repo

[base]

name=Redhat-$releasever

failovermethod=priority

baseurl=http://192.168.100.1/yum/rhel77/

gpgcheck=0

enabled=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

EOF

cat << EOF > /var/www/html/repo/rhel75.repo

redhat-Base.repo

[base]

name=Redhat-$releasever

failovermethod=priority

baseurl=http://192.168.100.1/yum/rhel75/

gpgcheck=0

enabled=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

EOF

cp -pf /var/www/html/repo/rhel77.repo /etc/yum.repos.d/rhel77.repo

yum clean all

yum repolist

安装PXE网络环境

安装软件包

yum install -y tftp-server dhcp xinetd

配置xinetd

修改/etc/xinet.d/tftp,将 disabled 参数从 yes 改为 no

配置dhcp

修改/etc/dhcp/dhcpd.conf

option space pxelinux;

option pxelinux.magic code 208 = string;

option pxelinux.configfile code 209 = text;

option pxelinux.pathprefix code 210 = text;

option pxelinux.reboottime code 211 = unsigned integer 32;

option architecture-type code 93 = unsigned integer 16;

subnet 192.168.100.0 netmask 255.255.255.0 {

option routers 192.168.100.1;

range 192.168.100.2 192.168.100.250;

class “pxeclients” {

match if substring (option vendor-class-identifier, 0, 9) = “PXEClient”;

next-server 192.168.100.1;

if option architecture-type = 00:07 {

filename “uefi/shim.efi”;

} else {

filename “pxelinux/pxelinux.0”;

}

}

}

配置tftp

为使用BIOS的系统配置

提取配置文件

mkdir -p /root/kickstart/

cp -pr /var/www/html/yum/rhel77/Packages/syslinux-4.05-15.el7.x86_64.rpm /root/kickstart/

cd /root/kickstart/

rpm2cpio syslinux-4.05-15.el7.x86_64.rpm | cpio -dimv

mkdir /var/lib/tftpboot/pxelinux

cp /root/kickstart/usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/pxelinux/

cp /root/kickstart/usr/share/syslinux/vesamenu.c32 /var/lib/tftpboot/pxelinux/

mkdir -p /var/lib/tftpboot/pxelinux/pxelinux.cfg

提取内核文件

mkdir -p /var/lib/tftpboot/images/

mkdir -p /var/lib/tftpboot/images/rhel77

mkdir -p /var/lib/tftpboot/images/rhel75

cp /var/www/html/yum/rhel77/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/images/rhel77/

cp /var/www/html/yum/rhel75/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/images/rhel75/

配置文件:/var/lib/tftpboot/pxelinux/pxelinux.cfg/default

default vesamenu.c32

prompt 1

timeout 600

label rhel77

menu label ^Install system

menu default

kernel images/rhel77/vmlinuz

append initrd=images/rhel77/initrd.img ip=dhcp inst.repo=http://192.168.100.1/yum/rhel77/ inst.ks=http://192.168.100.1/ksstart/ks77.cfg

label rhel75

menu label ^Install system

menu default

kernel images/rhel75/vmlinuz

append initrd=images/rhel75/initrd.img ip=dhcp inst.repo=http://192.168.100.1/yum/rhel75/ inst.ks=http://192.168.100.1/ksstart/ks75.cfg

为使用UEFT的系统配置

提取配置文件

cp -pr /var/www/html/yum/rhel77/Packages/shim-x64-15-2.el7.x86_64.rpm /root/kickstart/

cp -pr /var/www/html/yum/rhel77/Packages/grub2-efi-x64-2.02-0.80.el7.x86_64.rpm /root/kickstart/

cd /root/kickstart/

rpm2cpio shim-x64-15-2.el7.x86_64.rpm | cpio -dimv

rpm2cpio grub2-efi-x64-2.02-0.80.el7.x86_64.rpm | cpio -dimv

mkdir /var/lib/tftpboot/uefi

cp /root/kickstart/boot/efi/EFI/redhat/shim.efi /var/lib/tftpboot/uefi/

cp /root/kickstart/boot/efi/EFI/redhat/grubx64.efi /var/lib/tftpboot/uefi/

提取内核文件

mkdir -p /var/lib/tftpboot/images/

mkdir -p /var/lib/tftpboot/images/rhel77

mkdir -p /var/lib/tftpboot/images/rhel75

cp /var/www/html/yum/rhel77/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/images/rhel77/

cp /var/www/html/yum/rhel75/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/images/rhel75/

配置文件 /var/lib/tftpboot/uefi/grub.cfg

set timeout=60

menuentry ‘RHEL 7.7’ {

linuxefi images/rhel77/vmlinuz ip=dhcp inst.repo=http://192.168.100.1/yum/rhel77/ inst.ks=http://192.168.100.1/ksstart/ks77efi.cfg

initrdefi images/rhel77/initrd.img

}

menuentry ‘RHEL 7.5’ {

linuxefi images/rhel75/vmlinuz ip=dhcp inst.repo=http://192.168.100.1/yum/rhel75/ inst.ks=http://192.168.100.1/ksstart/ks75efi.cfg

initrdefi images/rhel75/initrd.img

}

kickstart配置

创建配置文件

mkdir -p /var/www/html/ksstart/

配置文件示例:ks77efi.cfg

System authorization information

auth --enableshadow --passalgo=sha512

Use Http install repo

url --url=http://192.168.100.1/yum/rhel77/

Use text install

text

Run the Setup Agent on first boot

firstboot --disable

firewall --disabled

selinux --disabled

格式化安装磁盘,这里的sda需要替换成对应的设备名

ignoredisk --only-use=sda

安装后操作

reboot

Keyboard layouts

keyboard --vckeymap=us --xlayouts=‘us’

System language

lang en_US.UTF-8

Network information,网卡设备名换成现有设备名

network --bootproto=dhcp --device=ens33 --onboot=on --activate

Root password

rootpw --plaintext 12345678

System services

services --disabled=“chronyd”

System timezone

timezone Asia/Shanghai

System bootloader configuration 这里的sda需要替换成对应的设备名

bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda

clearpart --none --initlabel 这里的sda需要替换成对应的设备名

clearpart --none --initlabel --drives=sda

Disk partitioning information

分区操作,请自行根据硬件配置和需求修改

/boot/efi 分区只有只用uefi引导启动需要,使用bios启动请忽略

part /boot/efi --fstype=“efi” --size=200 --ondisk=sda --fsoptions=“defaults,uid=0,gid=0,umask=0077,shortname=winnt”

part /boot --fstype=“xfs” --size=1024 --ondisk=sda

part pv.01 --ondisk=sda --grow --asprimary

volgroup rhel pv.01

logvol swap --fstype=“swap” --name=“swap” --vgname=“rhel” --size=32768

logvol / --fstype=“xfs” --name=“root” --vgname=“rhel” --size=409600

logvol /home --fstype=“xfs” --name=“home” --vgname=“rhel” --size=204800

logvol /var/log --fstype=“xfs” --name=“var_log” --vgname=“rhel” --size=204800

logvol /var/lib/docker --fstype=“xfs” --name=“var_lib_docker” --vgname=“rhel” --size=204800

预执行操作,使用uefi引导gpt盘必须要先设定盘未gpt

%pre

parted -s /dev/sda mklabel gpt

%end

安装软件

%packages

@^minimal

@core

kexec-tools

wget

net-tools

%end

后执行操作

%post

cd /etc/yum.repos.d/

rm -rf /etc/yum.repos.d/*

wget http://192.168.100.1/repo/rhel75.repo

%end

服务启动

systemctl start xinetd

systemctl start httpd

systemctl start dhcpd

systemctl start tftp

客户端引导安装

按照默认方式启动服务器,选择启动项,按PXE启动服务器,选择相应的安装软件 rhel75或者rhel75 即可自行安装操作系统

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

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

相关文章

Linux搭建SSLVpn

安装http、ssl服务 编辑http配置文件 修改http的136行&#xff0c;276行以及990行 1、136行将监听端口注释 2、276行和990行修改为自己的域名和要访问的端口 修改http文档最后那部分 新添ssl配置信息&#xff0c;将端口修改为443&#xff08;截图错了server.key应该放在/etc/…

jenkins Linux如何修改jenkins 默认的工作空间workspace

由于jenkins默认存放数据的目录是/var/lib/jenkins&#xff0c;一般这个var目录的磁盘空间很小的&#xff0c;就几十G,所以需要修改jenkins的默认工作空间workspace 环境 jenkins使用yum安装的 centos 7 正题 1 查看jenkins安装路径 [rootlocalhost jenkins_old_data]# rpm…

【80天学习完《深入理解计算机系统》】第九天 3.2 数据传送指令【mov】【栈和堆】【leaq】【一元操作】【二元操作】

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客&#xff0c;如有问题交流&#xff0c;欢迎评论区留言&#xff0c;一定尽快回复&#xff01;&#xff08;大家可以去看我的专栏&#xff0c;是所有文章的目录&#xff09;   文章字体风格&#xff1a; 红色文字表示&#…

如何优雅的使用Git?

第一部分&#xff1a;Git的基本概念和初始设置 Git是一个分布式版本控制系统&#xff0c;它允许多人共同工作&#xff0c;同时跟踪和管理项目的版本历史。使用Git&#xff0c;您可以恢复旧版本、创建新分支进行实验&#xff0c;并与其他开发者进行协作&#xff0c;而不会影响主…

基于AWS的3D模型搜索服务实现

3D模型广泛应用于计算机游戏、电影、工程、零售业、广告等许多领域。市场上有很多制作3D模型的工具&#xff0c;但几乎没有工具可以直观地搜索3D模型数据库以找到类似的3D模型 因为开发好的 3D 模型搜索工具非常具有挑战性。 它需要复杂的计算和 AI/ML 框架来创建模型描述符并提…

【MySQL系列】Select语句单表查询详解(二)ORDERBY排序

&#x1f490; &#x1f338; &#x1f337; &#x1f340; &#x1f339; &#x1f33b; &#x1f33a; &#x1f341; &#x1f343; &#x1f342; &#x1f33f; &#x1f344;&#x1f35d; &#x1f35b; &#x1f364; &#x1f4c3;个人主页 &#xff1a;阿然成长日记 …

C语言:选择+编程(每日一练Day8)

目录 选择题&#xff1a; 题一&#xff1a; 题二&#xff1a; 题三&#xff1a; 题四&#xff1a; 题五&#xff1a; 编程题&#xff1a; 题一&#xff1a;字符个数统计 思路一&#xff1a; 题二&#xff1a;多数元素 思路一&#xff1a; 本人实力有限可能对一些…

em 和 rem 的区别

前言 em 和 rem 都是相对单位&#xff0c;在使用时由浏览器转换为像素值&#xff0c;具体取决于你的设计中的字体大小设置。 如果你使用值 1em 或 1rem&#xff0c;它可以被浏览器解析成 从16px 到 160px 或其他任意值。 em 和 rem 的区别 em 和 rem 单位之间的区别是浏览器…

k8s 安装 istio(二)

3.3 部署服务网格调用链检测工具 Jaeger 部署 Jaeger 服务 kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.16/samples/addons/jaeger.yaml 创建 jaeger-vs.yaml 文件 apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata…

【面试】一文讲清组合逻辑中的竞争与冒险

竞争的定义&#xff1a;组合逻辑电路中&#xff0c;输入信号的变化传输到电路的各级逻辑门&#xff0c;到达的时间有先后&#xff0c;也就是存在时差&#xff0c;称为竞争。 冒险的定义&#xff1a;当输入信号变化时&#xff0c;由于存在时差&#xff0c;在输出端产生错误&…

Debug result = unpickler.load() ModuleNotFoundError: No module named ‘models‘

1.torch训练的yolov5转trt出现问题如下&#xff1a; Using CUDA device0 _CudaDeviceProperties(nameNVIDIA GeForce RTX 3080, total_memory10017MB)Find Pytorch weight Traceback (most recent call last):File "export.py", line 243, in <module>ckpt t…

Mac nvm 切换为淘宝镜像

编辑环境配置 # 或者 vim ~/.bash_profile $ vim ~/.zshrc贴入镜像 # 淘宝镜像 export NVM_NODEJS_ORG_MIRRORhttp://npm.taobao.org/mirrors/node export NVM_IOJS_ORG_MIRRORhttp://npm.taobao.org/mirrors/iojs# nvm环境配置 export NVM_DIR"$HOME/.nvm"[ -s &quo…

【实战】十一、看板页面及任务组页面开发(四) —— React17+React Hook+TS4 最佳实践,仿 Jira 企业级项目(二十六)

文章目录 一、项目起航&#xff1a;项目初始化与配置二、React 与 Hook 应用&#xff1a;实现项目列表三、TS 应用&#xff1a;JS神助攻 - 强类型四、JWT、用户认证与异步请求五、CSS 其实很简单 - 用 CSS-in-JS 添加样式六、用户体验优化 - 加载中和错误状态处理七、Hook&…

使用haproxy搭建web架构

haproxy HAProxy是一个免费的负载均衡软件&#xff0c;可以运行于大部分主流的Linux操作系统上。 HAProxy提供了可以在七层和四层两种负载均衡能力&#xff0c;它可以提供高可用性、负载均衡、及基于TCP和HTTP应用的代理。适用于负载大的Web站点&#xff0c;在运行在硬件上可…

libdrm全解析十九 —— 源码全解析(16)

接前一篇文章&#xff1a;libdrm全解析十八 —— 源码全解析&#xff08;15&#xff09; 本文参考以下博文&#xff1a; DRM 驱动程序开发&#xff08;VKMS&#xff09; 特此致谢&#xff01; 本文继续对include/drm/drm.h中实际功能宏定义进行讲解。 27. DRM_IOCTL_SET_SAR…

在React中,如何进行组件间的通信?请解释一下React的生命周期方法(Lifecycle Methods)是什么,以及它们的作用。

1、在React中&#xff0c;如何进行组件间的通信&#xff1f; 在React中&#xff0c;组件间的通信主要依赖于以下三种方式&#xff1a; Props&#xff1a;这是React中最重要的组件间通信方式。你可以将数据从一个组件传递到另一个组件&#xff0c;数据可以是简单的数据&#x…

To_Heart—题解——P6234 [eJOI2019] T形覆盖

link. 突然很想写这篇题解。虽然题目不算难。 考场只有30分是为什么呢&#xff1f;看来是我没有完全理解这道题目吧&#xff01; 首先很明显的转换是&#xff0c;把 T 型覆盖看成十字形&#xff0c;再考虑最后减去某一块的贡献。 然后然后直接往原图上面放十字形!对于每一个…

企业工程项目管理系统源码(三控:进度组织、质量安全、预算资金成本、二平台:招采、设计管理) em

​ 工程项目管理软件&#xff08;工程项目管理系统&#xff09;对建设工程项目管理组织建设、项目策划决策、规划设计、施工建设到竣工交付、总结评估、运维运营&#xff0c;全过程、全方位的对项目进行综合管理 工程项目各模块及其功能点清单 一、系统管理 1、数据字典&#…

1.4 启动MySQL客户端程序

成功启动MySQL服务器程序之后&#xff0c;就可以接着启动客户端程序来连接这个服务器。 bin 目录下有许多客户端程序&#xff0c;比方说 mysqladmin 、 mysqldump 、 mysqlcheck 等等。这里我们重点要关注的是可执行文件 mysql &#xff0c;通过这个可执行文件可以让我们和服务…

mysql数据库root密码遗忘后,修改root密码

目录 方式一&#xff1a; 方式二&#xff1a; 2.1 也可以像我这样&#xff0c;普通用户登录进去后 2.2 执行如下命令&#xff0c;将已知的user1的加密密文更新到root中 2.3 查询数据库 2.4 用root用户登录 2.5 登录正常&#xff0c;但这会root登录进去后&#xff0c;无法…