当前位置: 首页 > news >正文

RockyLinux 9 PXE Server bios+uefi 自动化部署 RockLinux 8 9

pxe server 前言

PXE(Preboot eXecution Environment,预启动执行环境)是一种网络启动协议,允许计算机通过网络启动而不是使用本地硬盘。PXE服务器是实现这一功能的服务器,它提供了启动镜像和引导加载程序,使得客户端计算机可以通过网络启动并安装操作系统或运行其他软件。

在Debian系统中,要设置一个PXE服务器,您需要以下几个组件:

  • TFTP服务器:用于提供启动镜像和引导加载程序。
  • DHCP服务器:用于分配IP地址给客户端计算机。
  • NFS或HTTP服务器:用于提供操作系统镜像和其他文件。

在Debian中,可以使用以下软件包来设置PXE服务器:

  • atftpd:一个轻量级的TFTP服务器,可以用于提供启动镜像和引导加载程序。
  • dnsmasq:一个轻量级的DHCP和DNS服务器,可以用于分配IP地址给客户端计算机。
  • nfs-kernel-server:用于提供NFS服务,以便客户端可以访问操作系统镜像和其他文件。

RockyLinux download

  • Rocky Linux Download-CSDN博客

 创建一键部署pxe server 环境脚本

  • pxe server 是RockyLinux 9
  • dhcp /etc/dhcp/dhcpd.conf 配置文件
  • tftp 配置文件/etc/default/tftpd-hpa
  • tftp 69
  • http 配置文件/etc/httpd/conf/httpd.conf
  • /etc/httpd/conf.d/pxeboot.conf 镜像http配置
  • http 端口80
  • /var/lib/tftpboot/pxelinux.cfg/default (bios 支持)配置文件
  • 10-48 行变量内容详细注意,更改自己需要的,自动化脚本仔细看
  • /var/lib/tftpboot/grub.cfg (uefi 支持)配置文件,grub.cfg此处Redhat 系和debian 系不一样哦注意哦
  • rockylinux root密码1234.com
  • LVM 自动分区,默认禁止/home 分区 
  • /var/pxe/{rockylinux8.10,rockylinux9.4} 挂载目录
  • /var/www/html/{rockylinux8.10,rockylinux9.4} images目录
  • /var/www/html/rockylinx_iso 8 9  iso 下载存放目录
  • /var/www/html/rockylinx_cfg{Rockylinux8.10-ks.cfg,Rockylinux9.4-ks.cfg} 自动化编排
  • rockylinux cfg编排参考
  • redhat cfg 编排参考(需要注册redhat 转换登录)
  • PXE网络安装参考,相关配置参考
  • bios 实现自动化安装esxi 需要syslinux官方是指导3.86,Redhat 8 系列下使用此 版本
  • # 加密密码生成
    python -c 'import crypt,getpass; \
    print(crypt.crypt(getpass.getpass(), \
    crypt.mksalt(crypt.METHOD_SHA512)))' 
vim /rockylinux_pxe_server_rockylinx.sh
#!/bin/bash
# -*- coding: utf-8 -*-
# Author: make.han 
# Email: CIASM@CIASM
# Date: 2024/07/24
# rockylinux 8 9 action pxe server
# PXE Redhat rockylinux almalinx oraclelinux 8 9#tftp variable configuration
tftp_port=69
tftp_user=tftp
tftp_catalogue=/var/lib/tftpboot#dhcp ip address variable configuration
nic_network_name=`ifconfig -s | awk 'NR>1 && !/^lo/ && !/^idrac/ && !/^br/ && !/^veth/ && !/^docker/{print $1; exit}'`
host_IP=`ifconfig -a | grep inet | grep -v '127.0.0.1' | awk '{ print $2}' | awk 'NR==1'`
MASK="255.255.255.0"
BROADCAST_ADDRESS="192.168.11.255"
ROUTERS="192.168.11.1"
SUBNET="192.168.11.0"
DNS="8.8.8.8"
RANGE="192.168.11.50 192.168.11.80"root_password='$6$4QaHWOfkEYxT2Dv6$3h5T/4AT/vkINa.R.9tToEUwro5YqD2UjulKRQ8k8ZMjqJOhib23nZ/fnKKgRh5TRaTg6I1mIa8VWJxmKQR7o0'# apache2 variable configuration
apache_port=80
apache_catalogue=/var/www/html#syslinux variable configuration
syslinux_download_url=https://mirrors.edge.kernel.org/pub/linux/utils/boot/syslinux/syslinux-4.07.tar.gz
syslinux_gz=syslinux-4.07.tar.gz
syslinux_catalogue=syslinux-4.07# rockylinx download variable configuration
rockylinux8_download_url=https://download.rockylinux.org/pub/rocky/8/isos/x86_64/Rocky-8.10-x86_64-dvd1.iso
rockylinux9_download_url=https://download.rockylinux.org/pub/rocky/9/isos/x86_64/Rocky-9.4-x86_64-dvd.iso
rockylinux8_iso=Rocky-8.10-x86_64-dvd1.iso
rockylinux9_iso=Rocky-9.4-x86_64-dvd.iso# rockylinx 8 9 catalogue
rockylinx_cfg=rockylinx_cfg
rockylinx_iso=rockylinx_iso
rockylinux8_catalogue=rockylinux8.10
rockylinux9_catalogue=rockylinux9.4install_pxe_server (){if ! [ -x "$(command -v dhcpd)" ]; thenif [ $? -eq 0 ];thenecho "install tftp dhcp"
dnf install tftp tftp-server dhcp-server httpd syslinux net-tools -yecho "stop selinx"
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config 
setenforce 0echo "firewalld tftp"
yum install -y curl
firewall-cmd --zone=public --add-port=$tftp_port/tcp --permanent && firewall-cmd --reload
firewall-cmd --zone=public --add-port=$tftp_port/udp --permanent && firewall-cmd --reloadecho "apache2 firewall"
firewall-cmd --zone=public --add-port=$apache_port/tcp --permanent && firewall-cmd --reloadecho "configuration dhcpd.conf"
rm -rf /etc/dhcp/dhcpd.conf
cat >> /etc/dhcp/dhcpd.conf << EOF
option domain-name         "$DNS";
option domain-name-servers  $DNS;
default-lease-time 2592000;
max-lease-time 2592000;
authoritative;# add follows
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 $SUBNET  netmask $MASK {range dynamic-bootp $RANGE;option broadcast-address $BROADCAST_ADDRESS;option routers $ROUTERS;#add followsclass "pxeclients" {match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";# PXE servers hostname or IP addressnext-server $host_IP;if option architecture-type = 00:07 {filename "BOOTX64.EFI";}else {filename "pxelinux.0";}}
}
EOFecho "restrat dhcpd"
systemctl enable --now dhcpd tftpecho "mkdir catalogue rockylinux cfg ISO save"
mkdir -p $apache_catalogue/{$rockylinx_cfg,$rockylinx_iso}echo "download rockylinux 8 9"
curl -o $apache_catalogue/$rockylinx_iso/$rockylinux8_iso $rockylinux8_download_url
curl -o $apache_catalogue/$rockylinx_iso/$rockylinux9_iso $rockylinux9_download_url mkdir -p /var/pxe/{$rockylinux8_catalogue,$rockylinux9_catalogue}
mkdir -p $tftp_catalogue/{$rockylinux8_catalogue,$rockylinux9_catalogue}echo "mount rockylinux 8 9"
mount -t iso9660 -o loop,ro $apache_catalogue/$rockylinx_iso/$rockylinux8_iso /var/pxe/$rockylinux8_catalogue
mount -t iso9660 -o loop,ro $apache_catalogue/$rockylinx_iso/$rockylinux9_iso /var/pxe/$rockylinux9_catalogueecho "Mount an image on startup"
sed -i "$ a $apache_catalogue/$rockylinx_iso/$rockylinux8_iso  /var/pxe/$rockylinux8_catalogue/ iso9660 defaults,loop,ro 0 0" /etc/fstab 
sed -i "$ a $apache_catalogue/$rockylinx_iso/$rockylinux9_iso  /var/pxe/$rockylinux9_catalogue/ iso9660 defaults,loop,ro 0 0" /etc/fstab echo "http config"
mv /etc/httpd/conf.d/welcome.conf /etc/httpd/conf.d/welcome.conf.org
sed -i "s#DirectoryIndex index.html#DirectoryIndex index.html index.php index.cgi#"  /etc/httpd/conf/httpd.conf
sed -i "s#Options Indexes FollowSymLinks#Options FollowSymLinks#"  /etc/httpd/conf/httpd.conf
sed -i "s#AllowOverride None#AllowOverride All#"  /etc/httpd/conf/httpd.conf
sed -i '$a ServerTokens Prod' /etc/httpd/conf/httpd.confecho "copy vmlinuz initrd.img"
cp -rf /var/pxe/$rockylinux8_catalogue/images/pxeboot/{vmlinuz,initrd.img} $tftp_catalogue/$rockylinux8_catalogue
cp -rf /var/pxe/$rockylinux9_catalogue/images/pxeboot/{vmlinuz,initrd.img} $tftp_catalogue/$rockylinux9_catalogueecho "add pxeboot.conf"
cat >> /etc/httpd/conf.d/pxeboot.conf<<EOF
# create new
Alias /$rockylinux8_catalogue /var/pxe/$rockylinux8_catalogue
<Directory /var/pxe/$rockylinux8_catalogue>Options Indexes FollowSymLinks# IP address you allow to accessRequire ip 127.0.0.1 $SUBNET/$MASK
</Directory># create new
Alias /$rockylinux9_catalogue /var/pxe/$rockylinux9_catalogue
<Directory /var/pxe/$rockylinux9_catalogue>Options Indexes FollowSymLinks# IP address you allow to accessRequire ip 127.0.0.1 $SUBNET/$MASK
</Directory>
EOF#下载syslinux-4.07.tar.gz,用于支持Bios 模式安装esxi
echo "low version syslinux"
curl -o /$syslinux_gz $syslinux_download_url
tar -zxf /$syslinux_gz -C /
cp -rf /$syslinux_catalogue/core/pxelinux.0 $tftp_catalogue/
cp -rf /$syslinux_catalogue/com32/menu/menu.c32 $tftp_catalogue/
cp -rf /$syslinux_catalogue/com32/menu/vesamenu.c32 $tftp_catalogue/echo "mkdir pxelinux.cfg"
mkdir -p $tftp_catalogue/pxelinux.cfg
cat <<EOF>>$tftp_catalogue/pxelinux.cfg/default
# change like follows#Official page display
default vesamenu.c32#Simple page display
#default menu.c32  #Set the home page timeout period according to project requirements timeout 30
timeout 300 #/var/lib/tftpboot/下,命名为you.png
#menu background ubunutu.pngmenu title ########## PXE Boot Menu #########
display boot.msglabel Auto Rockylinux8.10menu label ^Auto Install Rockylinux8.10kernel $rockylinux8_catalogue/vmlinuzappend initrd=$rockylinux8_catalogue/initrd.img ip=dhcp inst.ks=http://${host_IP}/$rockylinx_cfg/Rockylinux8.10-ks.cfglabel Auto Rockylinux9.4menu label ^Auto Install Rockylinux9.4kernel $rockylinux9_catalogue/vmlinuzappend initrd=$rockylinux9_catalogue/initrd.img ip=dhcp inst.ks=http://${host_IP}/$rockylinx_cfg/Rockylinux9.4-ks.cfglabel Manual Rockylinux8.10menu label ^Manual Install Rockylinux8.10kernel $rockylinux8_catalogue/vmlinuzappend initrd=$rockylinux8_catalogue/initrd.img ip=dhcp inst.repo=http://${host_IP}/$rockylinux8_cataloguelabel Manual Rockylinux9.4menu label ^Manual Install Rockylinux9.4kernel $rockylinux9_catalogue/vmlinuzappend initrd=$rockylinux9_catalogue/initrd.img ip=dhcp inst.repo=http://${host_IP}/$rockylinux9_cataloguelabel local#menu defaultcom32 chain.c32menu label Boot from ^local drivelocalboot 0xffff
menu end
EOFecho "creation grub.cfg"
cat <<EOF>>$tftp_catalogue/grub.cfg
# ubuntu 24
set default="3"set timeout=10
set gfxpayload=keep
set color_normal=white/blackfunction load_video {insmod video_bochsinsmod video_cirrusinsmod all_video
}load_video
insmod gzio
insmod part_msdos
insmod part_gpt
insmod ext2
insmod xfs
insmod png
insmod gfxterm
insmod gfxmenu
terminal_output gfxterm
background_image -m stretch bg.pngmenuentry 'EFI Firmware System Setup'  'uefi-firmware' {fwsetup
}menuentry 'Reboot System' {reboot
}menuentry 'Shutdown System' {halt
}menuentry 'Auto Install Rockylinux 8.10' {linuxefi $rockylinux8_catalogue/vmlinuz  ip=dhcp inst.ks=http://${host_IP}/$rockylinx_cfg/Rockylinux8.10-ks.cfginitrdefi $rockylinux8_catalogue/initrd.img
}menuentry 'Auto Install Rockylinux 9.4' {linuxefi $rockylinux9_catalogue/vmlinuz  ip=dhcp inst.ks=http://${host_IP}/$rockylinx_cfg/Rockylinux9.4-ks.cfginitrdefi $rockylinux9_catalogue/initrd.img
}menuentry 'Manual Install Rockylinux 8.10' {linuxefi $rockylinux8_catalogue/vmlinuz  ip=dhcp inst.repo=http://${host_IP}/$rockylinux8_catalogueinitrdefi $rockylinux8_catalogue/initrd.img
}menuentry 'Manual Install Rockylinux 9.4' {linuxefi $rockylinux9_catalogue/vmlinuz  ip=dhcp inst.repo=http://${host_IP}/$rockylinux9_catalogueinitrdefi $rockylinux9_catalogue/initrd.img
}
EOFecho "add rockylinx 9.4 cfg"
cat <<EOF>>$apache_catalogue/$rockylinx_cfg/Rockylinux9.4-ks.cfg
# automatically proceed for each steps
graphical# AppStream
repo --name="AppStream" --baseurl="http://${host_IP}/$rockylinux9_catalogue/AppStream"# Use network installation
url --url="http://${host_IP}/$rockylinux9_catalogue"# install disk
ignoredisk --only-use=sda# selinux stop
selinux --disabled# keyboard layouts
keyboard us# system locale
lang en_US# network settings
network  --bootproto=dhcp --ipv6=auto --activate --hostname=localhost
network --bootproto=static --device=em2 --ip=192.168.3.100 --netmask=255.255.255.0 --gateway=192.168.3.11 --nameserver=8.8.8.8 --ipv6=auto --activate# root password you generated above
rootpw --iscrypted $root_password# System timezone
timezone Asia/Shanghai --isUtc# Run the Setup Agent on first boot
firstboot --disable# Firewall configuration
auth --passalgo=sha512 --useshadow
firewall --enabled --ssh
firstboot --disable# Automated low-level formatting
zerombr#Automatic partition, / partition uses all space, disable home partition
autopart --type=lvm --fstype=xfs --nohome# initialize all partition tables
clearpart --all --initlabel
#clearpart --none --initlabel# partitioning
# for [/boot/efi], it needs only for UEFI clients
#part pv.106 --fstype="lvmpv" --ondisk=sda --size=919974
#part /boot --fstype="xfs" --ondisk=sda --size=1024
#part /boot/efi --fstype="efi" --ondisk=sda --size=600 --fsoptions="umask=0077,shortname=winnt"
#volgroup ro --pesize=4096 pv.106
#logvol swap --fstype="swap" --size=8611 --name=swap --vgname=ro
#logvol / --fstype="xfs" --size=911360 --name=root --vgname=ro# reboot after installing
reboot%packages
@^minimal-environment
@console-internet
kexec-tools
net-tools
vim
unzip
wget
tmux
git
tree
curl
jq
%end%post
yum clean all
yum makecache
yum install http://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm -y
sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
%end
EOFecho "add Rockylinux8.10-ks.cfg"
cat <<EOF>>$apache_catalogue/$rockylinx_cfg/Rockylinux8.10-ks.cfg
# create new
# automatically proceed for each steps
graphical# AppStream
repo --name="AppStream" --baseurl="http://${host_IP}/$rockylinux8_catalogue/AppStream"# Use network installation
url --url=http://${host_IP}/$rockylinux8_catalogue# install disk
ignoredisk --only-use=sda# selinux stop
selinux --disabled# keyboard layouts
keyboard us# system locale
lang en_US# network settings
network  --bootproto=dhcp --ipv6=auto --activate --hostname=localhost
network --bootproto=static --device=em2 --ip=192.168.3.100 --netmask=255.255.255.0 --gateway=192.168.3.11 --nameserver=8.8.8.8 --ipv6=auto --activate# root password you generated above
rootpw --iscrypted $root_password# System timezone
timezone Asia/Shanghai --isUtc# Run the Setup Agent on first boot
firstboot --enable# Firewall configuration
firewall --enabled --port=22:tcp# Automated low-level formatting
zerombr#Automatic partition, / partition uses all space, disable home partition
autopart --type=lvm --fstype=xfs --nohome# initialize all partition tables
clearpart --all --initlabel# partitioning
# for [/boot/efi], it needs only for UEFI clients
#part /boot/efi --fstype="efi" --ondisk=sda --size=4096 --fsoptions="defaults,uid=0,gid=0,umask=0077,shortname=centos"
#part /boot --fstype="xfs" --size=4096
#part pv.12 --grow --fstype="lvmpv" --size=871120
#volgroup ro --pesize=4096 pv.12
#logvol swap  --fstype="swap" --size=4096 --name=swap --vgname=ro
#logvol /  --fstype="xfs" --size=871120 --name=root --vgname=ro# reboot after installing
reboot%packages
@^minimal-environment
kexec-tools
net-tools
vim
unzip
wget
tmux
git
tree
curl
jq
tar
lm_sensors
lm_sensors-libs
%end%post
yum clean all
yum makecache
yum install http://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y
%end
EOFecho "uefl add"
mkdir -p /rpm
yum install yum-utils -y
yumdownloader --resolve --destdir=/rpm shim grub2-efi-x64 syslinux-tftpboot
cd /rpm
rpm2cpio shim-x64-*.rpm | cpio -dimv
rpm2cpio grub2-efi-x64-*.rpm | cpio -dimv
rpm2cpio syslinux-tftpboot-* | cpio -dimv
cp ./boot/efi/EFI/BOOT/BOOTX64.EFI $tftp_catalogue/
cp ./boot/efi/EFI/rocky/grubx64.efi $tftp_catalogue/
chmod 644 $tftp_catalogue/{BOOTX64.EFI,grubx64.efi}#Copy the EFI boot image from the boot directory
echo "Copy the EFI boot image from the boot directory"
mkdir -p $tftp_catalogue/uefi
cp -rf /rpm/boot/efi/EFI/rocky/* $tftp_catalogue/uefi/echo "copy pxelinux"
mkdir -p $tftp_catalogue/pxelinux
cp /rpm/tftpboot/* $tftp_catalogue/pxelinux/echo "restrat dhcp http tftp"
systemctl restart dhcpd httpd tftpecho "Deleting an rpm directory"
rm -rf /rpmecho -e "\033[32mThe esxi pxe server Install Sussess...\033[0m" elseecho -e "\033[33mThe esxi pxe server Install Failed...\033[0m" exit 1fielseecho -e "\033[31mThe esxi pxe server Install already...\033[0m"
fi
}main (){install_pxe_server
}main

 执行安装

bash /rockylinux_pxe_server_rockylinx.sh

RockyLinux 8 9 Bios 自动化部署

​​

RockyLinux 8 9 uefi 自动化部署 

分区lvm ,去除home目录

相关文章:

RockyLinux 9 PXE Server bios+uefi 自动化部署 RockLinux 8 9

pxe server 前言 PXE&#xff08;Preboot eXecution Environment&#xff0c;预启动执行环境&#xff09;是一种网络启动协议&#xff0c;允许计算机通过网络启动而不是使用本地硬盘。PXE服务器是实现这一功能的服务器&#xff0c;它提供了启动镜像和引导加载程序&#xff0c;…...

接口测试基础

一、认识接口测试 接口测试 接口&#xff1a;系统之间数据交互的通道。 硬件接口 软件接口 接口测试&#xff1a;基于不同的输入参数&#xff0c;校验接口响应数据与预期数据是否一致。 为什么要学接口测试? 提前介入测试、尽早发现问题 中级测试工程师必备技能 接口测试学…...

为什么 from . import * 不会导入子模块

为什么 from . import * 不会导入子模块 在 Python 中&#xff0c;from . import * 并不会自动导入子模块。这是因为 import * 的行为是由模块的 __all__ 变量决定的。如果没有定义 __all__&#xff0c;它只会导入当前模块中定义的顶层变量和函数&#xff0c;而不会递归地导入…...

LangGPT结构化提示词编写实践

langGPT提示词 # Role: 浮点数比较助手 ## Profile - author: LangGPT - version: 1.0 - language: 中文 - description: 一个专门帮助用户进行浮点数比较的助手&#xff0c;确保LLM能够准确识别和对比浮点数。## Skills 1. 理解浮点数的结构和数值意义。 2. 精…...

React: class 和 style

一、class 1、在react中使用className属性来绑定类名 <div className"header flex-middle-middle">添加2个类名 </div>2、动态添加类名 <div className{item ${nameactive ? active : }}>动态添加active类名 </div>二、style 1、react中…...

【数据结构】包装类、初识泛型

&#x1f387;&#x1f389;&#x1f389;&#x1f389;点进来你就是我的人了 博主主页&#xff1a;&#x1f648;&#x1f648;&#x1f648;戳一戳&#xff0c;欢迎大佬指点&#xff01; 人生格言: 当你的才华撑不起你的野心的时候,你就应该静下心来学习! 欢迎志同道合的朋友…...

TCP客户端connect断线重连

文章目录 TCP客户端connect断线重连1、为什么要断线重连2、实现代码 TCP客户端connect断线重连 1、为什么要断线重连 客户端会面临服务器崩溃的情况&#xff0c;我们可以试着写一个客户端重连的代码&#xff0c;模拟并理解一些客户端行为&#xff0c;比如游戏客户端等. 考虑到…...

细说MCU用DMA改变DAC输出信号频率和改善输出波形质量的方法

目录 一、参考硬件 二、修改定时器参数改变输出波形频率 三、改善波形质量 四、代码修改 五、查看结果 一、参考硬件 本项目的软件硬件工程参考作者的其他文章&#xff1a;细说MCU用DMA实现DAC输出的方法-CSDN博客 https://wenchm.blog.csdn.net/article/details/14065…...

Java高级面试题

文章目录 Java高级特性Java 8 中的新特性有哪些&#xff1f;Lambda 表达式的用途是什么&#xff1f;Stream API 的工作原理是什么&#xff1f;Optional 类的作用是什么&#xff1f;什么是函数式接口&#xff1f;Java 9 之后的新特性有哪些&#xff1f; 并发编程Java中的线程池是…...

USART串口理论知识总结

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 USART串口理论知识总结 1、通讯的串行和并行1.串口采用发送数据代码并用printf重代码 1、通讯的串行和并行 1.串口采用发送数据代码并用printf重代码 #include <stdint.h…...

基于 HTML+ECharts 实现智慧景区数据可视化大屏(含源码)

构建智慧景区数据可视化大屏&#xff1a;基于 HTML 和 ECharts 的实现 随着旅游业的蓬勃发展&#xff0c;智慧景区的概念逐渐深入人心。通过数据可视化&#xff0c;景区管理者可以实时监控游客流量、设施使用情况以及环境状况&#xff0c;从而提升游客体验和管理效率。本文将详…...

vxe-table——实现切换页码时排序状态的回显问题(ant-design+elementUi中table排序不同时回显的bug)——js技能提升

之前写的后台管理系统&#xff0c;都是用的antdelement&#xff0c;table组件中的【排序】问题是有一定的缺陷的。 想要实现的效果&#xff1a; antv——table组件一次只支持一个参数的排序 如下图&#xff1a; 就算是可以自行将排序字段拼接到列表接口的入参中&#xff0c…...

SQL

SQL全称 Structured Query Language&#xff0c;结构化查询语言。操作关系型数据库的编程语言&#xff0c;定义了一套操作关系型数据库统一标准 。 SQL通用语法 SQL语句可以单行或多行书写&#xff0c;以分号结尾。SQL语句可以使用空格/缩进来增强语句的可读性。MySQL数据库的…...

maven archetype

1.简介 maven脚手架是为了创建一个项目模板&#xff0c;以后新建项目都能够复用该模板 maven中模板引擎使用的是velocity,在文件中可以使用它的语法获取变量等操作 2.实现 单模块脚手架实现 pom.xml <?xml version"1.0" encoding"UTF-8"?> &…...

浏览器打开抽奖系统html

<!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>在线抽奖 随机选取 自动挑选</title> <script src"https://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script> <style> body {…...

微信小程序-使用Component方法代替Page方法构造页面

一.使用Component方法的前提条件 在小程序js文件里使用Component方法代替Page方法需要在json文件里面定义usingComponents属性 {"usingComponents": {} }二.注意事项 1.在page页面里使用的钩子函数和事件监听方法都需要写在methods对象里面 methods:{update(){thi…...

Spark SQL----DISTRIBUTE BY子句

Spark SQL----DISTRIBUTE BY子句 一、描述二、语法三、参数四、例子 一、描述 DISTRIBUTE BY子句用于根据输入表达式对数据进行重新分区。与CLUSTER BY子句不同&#xff0c;这不会对每个分区内的数据进行排序。 二、语法 DISTRIBUTE BY { expression [ , ... ] }三、参数 e…...

HTML5-canvas1

1、canvas&#xff1a;创建画布 <canvas id"canvas"></canvas>2、画一条直线 var canvasdocument.getElementById(cancas&#xff09;; canvas.width800; canvas.height800; var contextcanvas.getContext(2d); //获得2d绘图上下文环境 //画一条直线 c…...

【NOI-题解】1009 - 数组逆序1162 - 数组元素的删除1211 - 数组元素的插入1161. 元素插入有序数组1159. 数组元素的移动

文章目录 一、前言二、问题问题&#xff1a;1009 - 数组逆序问题&#xff1a;1162 - 数组元素的删除问题&#xff1a;1211 - 数组元素的插入问题&#xff1a;1161. 元素插入有序数组问题&#xff1a;1159. 数组元素的移动 三、感谢 一、前言 本章节主要对数组问题中数组元素移…...

新电脑如何设置 npm 源及查看源、安装 cnpm、pnpm 和 yarn 的详细教程

当你获得一台新电脑&#xff0c;或需要在现有电脑上优化 JavaScript 和 Node.js 的开发环境时&#xff0c;正确配置 npm 是一步不可少的过程。本教程将详细指导你如何设置 npm 源&#xff0c;查看当前源&#xff0c;以及如何安装 cnpm、pnpm 和 yarn。 1. 设置 npm 源 npm (N…...

完全移动huggingface模型仓库(不是简单mv)

Linux中移动huggingface模型仓库 参考链接 先在bashrc中配置&#xff1a; export HF_DATASETS_CACHE"/your/path/dataset" export HF_HOME"/your/path/" export HUGGINGFACE_HUB_CACHE"/your/path/hub" export TRANSFORMERS_CACHE"/your…...

手机空号过滤批量查询的意义及方法

手机空号过滤批量查询是现代营销和通信管理中常用的技术手段&#xff0c;旨在通过批量处理手机号码&#xff0c;筛选出活跃号码和空号等无效号码&#xff0c;以提高营销效率和减少不必要的通信成本。以下是关于手机空号过滤批量查询的详细解答&#xff1a; 一、手机空号过滤批…...

Dockerfile制作部署wordpress-6.6

目录 一. 环境准备 二. 准备对应的配置文件 三. 编写Dockerfile 四. 构建镜像 五. 配置MySQL 六. 安装wordpress 七. 扩展 一. 环境准备 localhost192.168.226.25 rocky_linux9.4 Docker version 27.0.3 关闭防火墙和selinux&#xff0c;进行时间同步。 安装docker…...

项目的纪要

ai客服项目中发现的问题: 可以在控制台看到我们存储的cookie: 可以看到是这样的, 但是我们通过getCookie方法专门获取这个字段, 然后在控制台打印后 const userName getCookie(SA_USER_NICK_NAME); console.log(userName, userName); 输出结果是: 然后我们尝试通过de…...

ubuntu 更新源

前言 实现一键替换在线源 一键更新源 ubuntu 全球镜像站以下支持现有ubuntu 20&#xff0c;22&#xff0c;24 echo "Delete the default source" rm -rf /etc/apt/sources.listecho "Build a new source" cat <<EOF>>/etc/apt/sources.li…...

XGBoost、RF随机森林算法MATLAB实现

% 加载并预处理训练数据 opts1 = detectImportOptions(附件一AE.xlsx, PreserveVariableNames, true); train_data = readtable(附件一AE.xlsx, opts1); train_data.Time = datetime(train_data.time, InputFormat, yyyy-MM-dd HH:mm:ss); % 特征提取和标签准备 windowSize…...

WPF 解决: DataGrid 已定义列,但是还是会显示模型的所有属性的问题

AutoGenerateColumns 属性 AutoGenerateColumns&#xff1a;这个属性决定 DataGrid 是否根据数据源中的属性自动生成列。如果设置为 true&#xff0c;DataGrid 会根据数据源中的属性自动生成列。如果设置为 false&#xff0c;则 DataGrid 不会自动生成列&#xff0c;开发者需要…...

【ai】Easy-RAG : ImportError: cannot import name ‘BaseModel‘ from ‘pydantic‘

[Bug]: cannot import name ‘RootModel’ from ‘pydantic’ #1237 版本不匹配导致 ImportError: cannot import name ‘BaseModel’ from ‘pydantic’ /home/zhangbin/miniconda3/envs/Easy-RAG/bin/python /home/zhangbin/proj/06_rag/02_Easy-RAG/webui.py /home/zhangbi…...

WebKit简介

WebKit是一个开源的浏览器引擎&#xff0c;最初由苹果公司开发&#xff0c;用于Safari浏览器。它是基于KDE项目的KHTML引擎进行开发&#xff0c;并在改进和扩展中形成了WebKit引擎。 WebKit的工作流程可以分为以下几个步骤&#xff1a; 1.解析HTML&#xff1a;当浏览器加载一个…...

笔记 | Python环境下的GUI编程常用包

前言 Python的使用频率和范围越来越大&#xff0c;在一些开发工作中由于需要可视化的图形界面&#xff0c;常常需要进行图形用户界面&#xff08;Graphic User Interface, GUI&#xff09;开发。例如&#xff0c;目前最火热的大模型应用&#xff0c;常常是以一个网页界面进行操…...