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

Cobbler+kickstart实现批量全自动装机

cobbler简介
  cobbler 是一个系统启动服务boot server,可以通过pxe得方式用来快速安装,重装系统,支持安装不同linux发行版和windows。这个工具是用python开发,方便小巧,15k行代码,使用简单得命令完成pxe网络安装环境配置,还可以管理dhcp,dns,yum包镜像。cobbler可以命令行,也可以web(cobbler-web),还提供api接口,可以方便二次开发使用。其实就是多安装树的pxe环境,是pxe的高级应用

cobbler支持的功能
1、pxe支持

2、dhcp管理

3、dns服务管理(bind,dnsmasq)

4、电源管理

5、kickstart支持

6、yum仓库管理

7、tftp(pxe启动时需要)

8、apache,提供ks得安装源,并提供定制化得ks配置,同时,它和apache做了深度整合,通过cobbler,可以师兄redhat/centos/fedora系统得快速部署,同时也支持suse、debian(ubuntu)系统,通过配置开可以支持windows

cobbler架构及工作原理、核心框架
cobbler工作原理
在这里插入图片描述
cobbler框架
在这里插入图片描述
介绍一下profile核心,由三个组件组成

  • repositories (安装树或安装源)
    mirror 镜像,光盘或者网络中得安装源
    import 导入
  • distribution(vmlinuz-内核,initrd.img-引导映像文件)
    cobbler 自动从reporitories抽取出来生成
    kickstart file 组成得完完整整得系统发行版

cobbler就是较早pxe的升级版,优点容易配置,还自带web界面比较易于管理,但是中文资料少,(有人测试:cobbler不会应为在局域网中启动了dhcp而导致有些机器因为默认从pxe启动在重启服务器后加载tftp内容导致启动终止,这部分没有验证)

可以通过cobbler自动部署dhcp,tftp,http,在安装过程中加载ks无人值守安装应答文件实现无人值守,从客户端使用pxe引导启动安装

一、准备Windows的ADK和win PE

ADK下载地址:https://go.microsoft.com/fwlink/?linkid=2026036

win PE下载地址:https://go.microsoft.com/fwlink/?linkid=2022233

注意,adk 的两个都要下载,这俩都是引导包,真正的安装程序会由这俩软件进行下载。

二、安装 ADK 和 WinPE

img

img

安装完后,以管理员身份打开部署和映像工具环境

img

定制 Win 10 PE

copype amd64 C:\winpeDism /mount-image /imagefile:C:\winpe\media\sources\boot.wim /index:1 /mountdir:C:\winpe\mountecho net use z: \\192.168.0.253\share >> C:\winpe\mount\Windows\System32\startnet.cmd
echo z:\win\setup.exe /unattend:z:\win\win10_x64_bios_auto.xml >> C:\winpe\mount\Windows\System32\startnet.cmdDism /unmount-image /mountdir:C:\winpe\mount /commit
MakeWinPEMedia /ISO C:\winpe C:\winpe\winpe_win10_amd64.iso
  1. 本地生成 winpe 文件目录
  2. dism 挂载 winpe 的启动文件到 winpe 的 mount 目录
  3. 将启动命令硬编码写死到 winpe 的 startnet.cmd 文件里
  4. 无人值守安装
  5. 卸载 winpe 的挂载(一定要执行,否则直接强制删除文件夹会出一些稀奇古怪的问题)
  6. 制作 win10 镜像,名为 winpe_win10_amd64.iso

三、乌班图安装Cobbler

乌班图安装需要编译安装,建议使用centos安装

安装Apache

[root@node1.local ~]# apt update
[root@node1.local ~]# apt install apache2

启用所需的 Apache 模块

使用 a2enmod 来启用 proxyproxy_httprewrite 模块

a2enmod proxy
a2enmod proxy_http
a2enmod rewrite

检查是否正确启用模块

apache2ctl -M | grep proxyproxy_module (shared)
proxy_http_module (shared)

创建 TFTP 根目录的符号链接

Cobbler 需要 TFTP 目录来进行 PXE 启动。创建一个符号链接,指向 tftpboot 目录

[root@node1.local ~]# ln -s /srv/tftp /var/lib/tftpboot

重新启动 Apache 服务

[root@node1.local ~]# systemctl restart apache2

查看服务状态

[root@node1.local ~]# systemctl status apache2

构建 .deb

下载 Cobbler 源代码

[root@node1.local ~]# git clone https://github.com/cobbler/cobbler.git
[root@node1.local ~]# cd cobbler

安装 debuild 和其他构建工具

[root@node1.local cobbler]# apt update
[root@node1.local cobbler]# apt install devscripts build-essential fakeroot debhelper

构建

[root@node1.local cobbler]# make debs

查看构建包位置

[root@node1.local ~]# find ~ -iname '*.deb'
/root/cobbler/deb-build/cobbler-tests-containers_3.4.0_all.deb
/root/cobbler/deb-build/cobbler_3.4.0_all.deb
/root/cobbler/deb-build/cobbler-tests_3.4.0_all.deb
/root/cobbler-tests-containers_3.4.0_all.deb
/root/cobbler_3.4.0_all.deb
/root/cobbler-tests_3.4.0_all.deb

安装

[root@node1.local ~]# dpkg -i /root/cobbler_3.4.0_all.deb#安装的时候会提示以下缺少依赖
fence-agents
xorriso
python3-gunicorn
python3-pymong

安装依赖

#安装依赖会报错
[root@node1.local ~]# apt-get install fence-agents xorriso python3-gunicorn python3-pymongo
eading package lists... Done
Building dependency tree... Done
Reading state information... Done
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:cobbler : Depends: fence-agents but it is not going to be installedDepends: xorriso but it is not going to be installedDepends: python3-gunicorn but it is not going to be installedpython3-pymongo : Depends: python3-bson (= 3.11.0-1ubuntu0.24.04.1) but it is not going to be installedRecommends: python3-gridfs (>= 3.11.0-1ubuntu0.24.04.1) but it is not going to be installedRecommends: python3-pymongo-ext but it is not going to be installed
E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).#修复破损的依赖关系
[root@node1.local ~]# apt --fix-broken install#安装成功
[root@node1.local ~]# apt-get install fence-agents xorriso python3-gunicorn python3-pymongo
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
fence-agents is already the newest version (4.12.1-2~exp1ubuntu4).
fence-agents set to manually installed.
xorriso is already the newest version (1:1.5.6-1.1ubuntu3).
xorriso set to manually installed.
python3-gunicorn is already the newest version (20.1.0-6).
python3-gunicorn set to manually installed.
python3-pymongo is already the newest version (3.11.0-1ubuntu0.24.04.1).
python3-pymongo set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 19 not upgraded.

安装cobbler

[root@node1.local cobbler]# dpkg -i /root/cobbler_3.4.0_all.deb
(Reading database ... 196119 files and directories currently installed.)
Preparing to unpack /root/cobbler_3.4.0_all.deb ...
Unpacking cobbler (3.4.0) over (3.4.0) ...
Setting up cobbler (3.4.0) ...
Processing triggers for man-db (2.12.0-4build2) ...

启动cobbler

mv /etc/cobbler/cobblerd.service /etc/systemd/system/systemctl daemon-reload
systemctl start cobblerd
systemctl enable cobblerdcobblerd check

三、centos安装

参考地址:https://blog.swireb.cn/archives/docs-011

准备工作

#关闭防火墙和selinux
systemctl disable firewalld.service
systemctl stop firewalld.service
sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config#关闭了selinux需要重启服务器生效
reboot

安装 EPEL 仓库

yum install -y epel-release

更新仓库安装

yum update
yum install -y dhcp tftp-server xinetd debmirror pykickstart cobbler cobbler-web  #组件作用简介
cobbler     #基础组件
cobbler-web #web组件
debmirror   #镜像管理工具
pykickstart #检查cobbler配置文件语法
httpd       #发布镜像
syslinux    #配置引导文件(生成pxelinux.0)
tftp-server #为PXE的客户端提供引导文件
dhcp        #为PXE的客户端提供IP地址、告知tftp的服务地址

Cobbler目录文件简介

rpm -ql cobbler
/etc/cobbler                  #配置文件目录
/etc/cobbler/settings         #cobbler主配置文件
/etc/cobbler/dhcp.template    #dhcp服务的配置模板
/etc/cobbler/tftpd.template   #tftp服务的配置模板
/etc/cobbler/rsync.template   #rsync服务的配置模板
/etc/cobbler/iso              #iso模板配置文件目录
/etc/cobbler/pxe              #pxe模板文件目录
/etc/cobbler/power            #电源的配置文件目录
/etc/cobbler/users.conf       #web服务授权配置文件
/etc/cobbler/users.digest     #用于web访问的用户名密码配置文件
/etc/cobbler/dnsmasq.template #dns服务的配置模板
/etc/cobbler/modules.conf     #cobbler模块配置文件
/var/lib/cobbler              #cobbler数据目录
/var/lib/cobbler/config       #配置文件
/var/lib/cobbler/kickstarts   #默认存放kickstart文件
/var/lib/cobbler/loaders      #存放的各种引导程序
/var/www/cobbler              #系统安装镜像目录
/var/www/cobbler/ks_mirror    #导入的系统镜像列表
/var/www/cobbler/images       #导入的系统镜像启动文件
/var/www/cobbler/repo_mirror  #YUM源存储目录
/var/log/cobbler              #日志目录
/var/log/cobbler/install.log  #客户端系统安装日志
/var/log/cobbler/cobbler.log  #cobbler日志 

Cobbler主配置文件修改

#生成密文密码
openssl passwd -1#设置root密码
sed -i 's|^default_password_crypted.*|default_password_crypted: "$1$Nrt/tXCR$BrRthh4tFphGyCunrGWzi/"|g' /etc/cobbler/settings#设置指定tftp服务IP地址
sed -i 's|^next_server.*|next_server: 192.1.1.211|g' /etc/cobbler/settings#设置cobbler服务地址
sed -i 's|^server.*|server: 192.1.1.211|g' /etc/cobbler/settings#cobbler接管dhcp(0为关闭 1为开启)
sed -i 's|^manage_dhcp.*|manage_dhcp: 0|g' /etc/cobbler/settings#cobbler接管tftp(0为关闭 1为开启)
sed -i 's|^manage_tftpd.*|manage_tftpd: 1|g' /etc/cobbler/settings#cobbler启动服务
systemctl enable --now httpd.service
systemctl enable --now cobblerd.service

Cobbler首次检查

cobbler check
1 : change 'disable' to 'no' in /etc/xinetd.d/tftp
2 : Some network boot-loaders are missing from /var/lib/cobbler/loaders, you may run 'cobbler get-loaders' to download them, or, if you only want to handle x86/x86_64 netbooting, you may ensure that you have installed a *recent* version of the syslinux package installed and can ignore this message entirely.  Files in this directory, should you want to support all architectures, should include pxelinux.0, menu.c32, elilo.efi, and yaboot. The 'cobbler get-loaders' command is the easiest way to resolve these requirements. #可以忽略(确保系统已经安装pxelinux)
3 : enable and start rsyncd.service with systemctl
4 : comment out 'dists' on /etc/debmirror.conf for proper debian support
5 : comment out 'arches' on /etc/debmirror.conf for proper debian support
6 : fencing tools were not found, and are required to use the (optional) power management features. install cman or fence-agents to use them #可以忽略

解决Cobbler检查报错

#报错1问题解决
cat << EOF | tee /etc/xinetd.d/tftp
service tftp
{socket_type             = dgramprotocol                = udpwait                    = yes user                    = rootserver                  = /usr/sbin/in.tftpdserver_args             = -s /var/lib/tftpbootdisable                 = noper_source              = 11cps                     = 100 2flags                   = IPv4
}
EOF#报错3问题解决
systemctl enable --now rsyncd.service#报错4、5问题解决
sed -i 's|@dists=.*|# @dists=|' /etc/debmirror.conf 
sed -i 's|@arches=.*|# @arches=|' /etc/debmirror.conf

Cobbler首次同步

#再次运行检查
cobbler check
1 : Some network boot-loaders are missing from /var/lib/cobbler/loaders, you may run 'cobbler get-loaders' to download them, or, if you only want to handle x86/x86_64 netbooting, you may ensure that you have installed a *recent* version of the syslinux package installed and can ignore this message entirely.  Files in this directory, should you want to support all architectures, should include pxelinux.0, menu.c32, elilo.efi, and yaboot. The 'cobbler get-loaders' command is the easiest way to resolve these requirements.#cobbler首次同步
cobbler sync

四、配置dhcp服务

Cobbler接管dhcp

vim /etc/cobbler/dhcp.template  
subnet 10.99.88.0 netmask 255.255.255.0 {# option routers             10.99.88.55;# option domain-name-servers 127.0.0.1;option subnet-mask         255.255.255.0;range dynamic-bootp        10.99.88.100 10.99.88.254;default-lease-time         21600;max-lease-time             43200;next-server                $next_server;class "pxeclients" {match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";if option pxe-system-type = 00:02 {filename "ia64/elilo.efi";} else if option pxe-system-type = 00:06 {filename "grub/grub-x86.efi";} else if option pxe-system-type = 00:07 {filename "grub/grub-x86_64.efi";} else if option pxe-system-type = 00:09 {filename "grub/grub-x86_64.efi";} else {filename "pxelinux.0";}}}#cobbler主配置文件开启dhcp接管
sed -i 's|^manage_dhcp.*|manage_dhcp: 1|g' /etc/cobbler/settings #重新同步
systemctl restart cobblerd.service
cobbler sync  #启动dhcp服务
systemctl enable --now dhcpd.service 
systemctl restart dhcpd.service

使用现有dhcp服务器–>定义了上面的模板下面会自动获取

#修改dhcp配置文件
vim /etc/dhcp/dhcpd.conf 
subnet 10.99.88.0 netmask 255.255.255.0 {# option routers             10.99.88.55;# option domain-name-servers 127.0.0.1;option subnet-mask         255.255.255.0;range dynamic-bootp        10.99.88.100 10.99.88.254;default-lease-time         21600;max-lease-time             43200;next-server                192.1.1.211;class "pxeclients" {match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";if option pxe-system-type = 00:02 {filename "ia64/elilo.efi";} else if option pxe-system-type = 00:06 {filename "grub/grub-x86.efi";} else if option pxe-system-type = 00:07 {filename "grub/grub-x86_64.efi";} else if option pxe-system-type = 00:09 {filename "grub/grub-x86_64.efi";} else {filename "pxelinux.0";}}}
#启动dhcp服务
systemctl enable --now dhcpd.service 
systemctl restart dhcpd.service

五、其他相关服务配置

配置tftp服务

#确保tftp的站点目录存在引导文件(cobbler检查问题的过程中已经修了tftp的配置文件)
ll /var/lib/tftpboot/
drwxr-xr-x  3 root root   4096 Mar  1 23:54 boot
drwxr-xr-x. 2 root root   4096 Oct 15  2019 etc
drwxr-xr-x. 2 root root   4096 Mar  1 23:54 grub  #UEFI启动菜单目录
drwxr-xr-x. 7 root root   4096 Mar  1 23:54 images
drwxr-xr-x. 2 root root   4096 Oct 15  2019 images2
-rw-r--r--. 2 root root  26140 Oct 31  2018 memdisk
-rw-r--r--. 2 root root  54964 Mar  1 23:54 menu.c32
drwxr-xr-x. 2 root root   4096 Oct 15  2019 ppc
-rw-r--r--. 2 root root  16794 Mar  1 23:54 pxelinux.0
drwxr-xr-x. 2 root root   4096 Mar  1 23:56 pxelinux.cfg #BIOS启动菜单目录
drwxr-xr-x. 2 root root   4096 Mar  1 23:54 s390x
-rw-r--r--  2 root root 198236 Feb  8 15:17 yaboot#启动tftp服务
systemctl enable --now tftp.service  
systemctl enable --now xinetd.service
systemctl restart tftp.service 
systemctl restart xinetd.service

六、配置 Cobbler Server

参考地址:https://anjia0532.github.io/2019/02/22/cobbler-win10-win-server-2019/

导入 Cobbler

使用 WinScp 等工具,将 winpe_win10_amd64.iso 上传到 Cobbler 服务器上

[root@localhost ~]# cobbler distro add --name=windows_10_x64 --kernel=/var/lib/tftpboot/memdisk --initrd=/root/winpe_win10_amd64.iso --kopts="raw iso"
[root@localhost ~]# touch /var/lib/cobbler/kickstarts/winpe.xml
[root@localhost ~]# cobbler profile add --name=windows_10_x64 --distro=windows_10_x64 --kickstart=/var/lib/cobbler/kickstarts/winpe.xml
创建自动应答文件
[root@localhost kickstarts]# pwd
/var/lib/cobbler/kickstarts[root@localhost kickstarts]# vim winpe.xml
<!--*************************************************
Windows 10 Answer File Generator
Created using Windows AFG found at:
;http://www.windowsafg.comInstallation Notes
Location: zh-CN
Notes: Enter your comments here...
**************************************************-->
<?xml version="1.0" encoding="utf-8"?>
<unattendxmlns="urn:schemas-microsoft-com:unattend"><settings pass="windowsPE"><component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><SetupUILanguage><UILanguage>en-US</UILanguage></SetupUILanguage><InputLocale>0804:{81D4E9C9-1D3B-41BC-9E6C-4B40BF79E35E}{FA550B04-5AD7-411f-A5AC-CA038EC515D7}</InputLocale><SystemLocale>zh-CN</SystemLocale><UILanguage>zh-CN</UILanguage><UILanguageFallback>zh-CN</UILanguageFallback><UserLocale>zh-CN</UserLocale></component><component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><SetupUILanguage><UILanguage>en-US</UILanguage></SetupUILanguage><InputLocale>0804:{81D4E9C9-1D3B-41BC-9E6C-4B40BF79E35E}{FA550B04-5AD7-411f-A5AC-CA038EC515D7}</InputLocale><SystemLocale>zh-CN</SystemLocale><UILanguage>zh-CN</UILanguage><UILanguageFallback>zh-CN</UILanguageFallback><UserLocale>zh-CN</UserLocale></component><component name="Microsoft-Windows-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><DiskConfiguration><Disk wcm:action="add"><CreatePartitions><CreatePartition wcm:action="add"><Order>1</Order><Type>Primary</Type><Size>100</Size></CreatePartition><CreatePartition wcm:action="add"><Extend>true</Extend><Order>2</Order><Type>Primary</Type></CreatePartition></CreatePartitions><ModifyPartitions><ModifyPartition wcm:action="add"><Active>true</Active><Format>NTFS</Format><Label>System Reserved</Label><Order>1</Order><PartitionID>1</PartitionID><TypeID>0x27</TypeID></ModifyPartition><ModifyPartition wcm:action="add"><Active>true</Active><Format>NTFS</Format><Label>OS</Label><Letter>C</Letter><Order>2</Order><PartitionID>2</PartitionID></ModifyPartition></ModifyPartitions><DiskID>0</DiskID><WillWipeDisk>true</WillWipeDisk></Disk></DiskConfiguration><ImageInstall><OSImage><InstallTo><DiskID>0</DiskID><PartitionID>2</PartitionID></InstallTo><InstallToAvailablePartition>false</InstallToAvailablePartition></OSImage></ImageInstall><UserData><AcceptEula>true</AcceptEula><FullName>AnJia</FullName><Organization>AnJia</Organization><ProductKey><Key>VK7JG-NPHTM-C97JM-9MPGT-3V66T</Key></ProductKey></UserData></component><component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><DiskConfiguration><Disk wcm:action="add"><CreatePartitions><CreatePartition wcm:action="add"><Order>1</Order><Type>Primary</Type><Size>100</Size></CreatePartition><CreatePartition wcm:action="add"><Extend>true</Extend><Order>2</Order><Type>Primary</Type></CreatePartition></CreatePartitions><ModifyPartitions><ModifyPartition wcm:action="add"><Active>true</Active><Format>NTFS</Format><Label>System Reserved</Label><Order>1</Order><PartitionID>1</PartitionID><TypeID>0x27</TypeID></ModifyPartition><ModifyPartition wcm:action="add"><Active>true</Active><Format>NTFS</Format><Label>OS</Label><Letter>C</Letter><Order>2</Order><PartitionID>2</PartitionID></ModifyPartition></ModifyPartitions><DiskID>0</DiskID><WillWipeDisk>true</WillWipeDisk></Disk></DiskConfiguration><ImageInstall><OSImage><InstallTo><DiskID>0</DiskID><PartitionID>2</PartitionID></InstallTo><InstallToAvailablePartition>false</InstallToAvailablePartition></OSImage></ImageInstall><UserData><AcceptEula>true</AcceptEula><FullName>AnJia</FullName><Organization>AnJia</Organization><ProductKey><Key>VK7JG-NPHTM-C97JM-9MPGT-3V66T</Key></ProductKey></UserData></component></settings><settings pass="offlineServicing"><component name="Microsoft-Windows-LUA-Settings" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><EnableLUA>false</EnableLUA></component></settings><settings pass="offlineServicing"><component name="Microsoft-Windows-LUA-Settings" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><EnableLUA>false</EnableLUA></component></settings><settings pass="generalize"><component name="Microsoft-Windows-Security-SPP" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><SkipRearm>1</SkipRearm></component></settings><settings pass="generalize"><component name="Microsoft-Windows-Security-SPP" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><SkipRearm>1</SkipRearm></component></settings><settings pass="specialize"><component name="Microsoft-Windows-International-Core" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><InputLocale>0804:{81D4E9C9-1D3B-41BC-9E6C-4B40BF79E35E}{FA550B04-5AD7-411f-A5AC-CA038EC515D7}</InputLocale><SystemLocale>zh-CN</SystemLocale><UILanguage>zh-CN</UILanguage><UILanguageFallback>zh-CN</UILanguageFallback><UserLocale>zh-CN</UserLocale></component><component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><InputLocale>0804:{81D4E9C9-1D3B-41BC-9E6C-4B40BF79E35E}{FA550B04-5AD7-411f-A5AC-CA038EC515D7}</InputLocale><SystemLocale>zh-CN</SystemLocale><UILanguage>zh-CN</UILanguage><UILanguageFallback>zh-CN</UILanguageFallback><UserLocale>zh-CN</UserLocale></component><component name="Microsoft-Windows-Security-SPP-UX" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><SkipAutoActivation>true</SkipAutoActivation></component><component name="Microsoft-Windows-Security-SPP-UX" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><SkipAutoActivation>true</SkipAutoActivation></component><component name="Microsoft-Windows-SQMApi" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><CEIPEnabled>0</CEIPEnabled></component><component name="Microsoft-Windows-SQMApi" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><CEIPEnabled>0</CEIPEnabled></component><component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><ComputerName>AnJia-PC</ComputerName><ProductKey>VK7JG-NPHTM-C97JM-9MPGT-3V66T</ProductKey></component><component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><ComputerName>AnJia-PC</ComputerName><ProductKey>VK7JG-NPHTM-C97JM-9MPGT-3V66T</ProductKey></component></settings><settings pass="oobeSystem"><component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><AutoLogon><Password><Value></Value><PlainText>true</PlainText></Password><Enabled>true</Enabled><Username>AnJia</Username></AutoLogon><OOBE><HideEULAPage>true</HideEULAPage><HideOEMRegistrationScreen>true</HideOEMRegistrationScreen><HideOnlineAccountScreens>true</HideOnlineAccountScreens><HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE><NetworkLocation>Work</NetworkLocation><SkipUserOOBE>true</SkipUserOOBE><SkipMachineOOBE>true</SkipMachineOOBE><ProtectYourPC>1</ProtectYourPC></OOBE><UserAccounts><LocalAccounts><LocalAccount wcm:action="add"><Password><Value></Value><PlainText>true</PlainText></Password><Description>AnJia</Description><DisplayName>AnJia</DisplayName><Group>Administrators</Group><Name>AnJia</Name></LocalAccount></LocalAccounts></UserAccounts><RegisteredOrganization>AnJia</RegisteredOrganization><RegisteredOwner>AnJia</RegisteredOwner><DisableAutoDaylightTimeSet>false</DisableAutoDaylightTimeSet><FirstLogonCommands><SynchronousCommand wcm:action="add"><Description>Control Panel View</Description><Order>1</Order><CommandLine>reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel" /v StartupPage /t REG_DWORD /d 1 /f</CommandLine><RequiresUserInput>true</RequiresUserInput></SynchronousCommand><SynchronousCommand wcm:action="add"><Order>2</Order><Description>Control Panel Icon Size</Description><RequiresUserInput>false</RequiresUserInput><CommandLine>reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel" /v AllItemsIconView /t REG_DWORD /d 0 /f</CommandLine></SynchronousCommand><SynchronousCommand wcm:action="add"><Order>3</Order><RequiresUserInput>false</RequiresUserInput><CommandLine>cmd /C wmic useraccount where name="AnJia" set PasswordExpires=false</CommandLine><Description>Password Never Expires</Description></SynchronousCommand></FirstLogonCommands><TimeZone>China Standard Time</TimeZone></component><component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><AutoLogon><Password><Value></Value><PlainText>true</PlainText></Password><Enabled>true</Enabled><Username>AnJia</Username></AutoLogon><OOBE><HideEULAPage>true</HideEULAPage><HideOEMRegistrationScreen>true</HideOEMRegistrationScreen><HideOnlineAccountScreens>true</HideOnlineAccountScreens><HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE><NetworkLocation>Work</NetworkLocation><SkipUserOOBE>true</SkipUserOOBE><SkipMachineOOBE>true</SkipMachineOOBE><ProtectYourPC>1</ProtectYourPC></OOBE><UserAccounts><LocalAccounts><LocalAccount wcm:action="add"><Password><Value></Value><PlainText>true</PlainText></Password><Description>AnJia</Description><DisplayName>AnJia</DisplayName><Group>Administrators</Group><Name>AnJia</Name></LocalAccount></LocalAccounts></UserAccounts><RegisteredOrganization>AnJia</RegisteredOrganization><RegisteredOwner>AnJia</RegisteredOwner><DisableAutoDaylightTimeSet>false</DisableAutoDaylightTimeSet><FirstLogonCommands><SynchronousCommand wcm:action="add"><Description>Control Panel View</Description><Order>1</Order><CommandLine>reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel" /v StartupPage /t REG_DWORD /d 1 /f</CommandLine><RequiresUserInput>true</RequiresUserInput></SynchronousCommand><SynchronousCommand wcm:action="add"><Order>2</Order><Description>Control Panel Icon Size</Description><RequiresUserInput>false</RequiresUserInput><CommandLine>reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel" /v AllItemsIconView /t REG_DWORD /d 0 /f</CommandLine></SynchronousCommand><SynchronousCommand wcm:action="add"><Order>3</Order><RequiresUserInput>false</RequiresUserInput><CommandLine>cmd /C wmic useraccount where name="AnJia" set PasswordExpires=false</CommandLine><Description>Password Never Expires</Description></SynchronousCommand></FirstLogonCommands><TimeZone>China Standard Time</TimeZone></component></settings>
</unattend>

七、配置 samba

安装 samba
yum install samba -y
修改 smb config
[root@localhost ~]# vi /etc/samba/smb.conf# /etc/samba/smb.conf
[global]
log file = /var/log/samba/log.%m
max log size = 5000
security = user
guest account = nobody
map to guest = Bad User
load printers = yes
cups options = raw[share]
comment = share directory目录
path = /smb/
directory mask = 0755
create mask = 0755
guest ok=yes
writable=yes
启动 smb 服务
[root@localhost ~]# service smb start
[root@localhost ~]# systemctl enable smb
挂载 win10 系统

通过 winscp 等软件将 cn_windows_10_business_edition_version_1809_updated_sept_2018_x64_dvd_84ac403f.iso 上传到 cobbler 服务器上,并将创建的应答文件,上传到 cobbler /smb/win/win10_x64_bios_auto.xml

[root@localhost ~]# mkdir -p /smb/win
[root@localhost ~]# mount -o loop,ro zh-cn_windows_10_enterprise_ltsc_2021_x64_dvd_033b7312.iso /mnt/
[root@localhost ~]# cp -r /mnt/* /smb/win
[root@localhost ~]# umount /mnt/

八、装 Windows10

从 vmware 创建一台内存 4G,cpu2 核,磁盘 60G 的空盘,win10 虚拟机,然后开机。记得选 BIOS,别选 UEFI。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

相关文章:

Cobbler+kickstart实现批量全自动装机

cobbler简介   cobbler 是一个系统启动服务boot server,可以通过pxe得方式用来快速安装&#xff0c;重装系统&#xff0c;支持安装不同linux发行版和windows。这个工具是用python开发&#xff0c;方便小巧&#xff0c;15k行代码&#xff0c;使用简单得命令完成pxe网络安装环境…...

【Pandas】pandas Series at

Pandas2.2 Series Indexing, iteration 方法描述Series.get()用于根据键&#xff08;索引标签&#xff09;从 Series 中获取值Series.at用于快速访问标量值&#xff08;单个元素&#xff09;的访问器Series.iat用于快速访问标量值&#xff08;单个元素&#xff09;的访问器 …...

optimum-habana 安装 optimum安装

目录 git地址: 运行必须参数设置 git地址: https://github.com/huggingface/optimum-habana git clone 以后 cd optimum-habana pip install . 运行必须参数设置 hpu改为 cuda, output = subprocess.run("pip list | grep habana-torch-plugin",shell=True…...

AutoDL服务器深度学习使用过程

前期准备 Xshell,Xftp,Pycharm专业版 step 1:实例开机&#xff08;无卡or有卡&#xff09;&#xff0c;Xshell连接 新建xshell会话&#xff1a; 登录指令格式为&#xff1a; ssh -p 38076 rootregion-1.autodl.com 在ssh -p 38076 rootregion-1.autodl.com命令中&#xff0…...

微信小程序:定义页面标题,动态设置页面标题,json

1、常规设置页面标题 正常微信小程序中&#xff0c;设置页面标题再json页面中进行设置&#xff0c;例如 {"usingComponents": {},"navigationBarTitleText": "标题","navigationBarBackgroundColor": "#78b7f7","navi…...

LeetCode算法题——有序数组的平方

题目描述 给你一个按非递减顺序排序的整数数组nums&#xff0c;返回每个数字的平方组成的新数组&#xff0c;要求也按非递减顺序排序。 题解 解法一&#xff1a;暴力解法 思路&#xff1a; 该题目可通过暴力解法解决&#xff0c;即利用for循环遍历数组&#xff0c;对数组每…...

【MyBatis-Plus 核心接口】BaseMapper 和 IService 深度解析

在使用 MyBatis-Plus&#xff08;简称 MP&#xff09;进行开发时&#xff0c;BaseMapper 和 IService 接口是我们老朋友了&#xff0c;不知道你会不会跟我一样好奇&#xff1a;为什么实现了 BaseMapper 或 IService 接口&#xff0c;我们就能轻松操作数据库&#xff1f;这背后有…...

SQL 建表语句详解

SQL 建表语句详解 在 SQL 中&#xff0c;创建表&#xff08;Table&#xff09;是数据库设计的基础。表是存储数据的基本单位&#xff0c;每个表由行和列组成。创建表的过程涉及到定义表的结构&#xff0c;包括列名、数据类型、约束等。本文将详细介绍 SQL 中的建表语句&#x…...

数据可视化-16. 日历图

目录 1. 日历图的概念 2. 日历图的适用场景 2.1 事件或活动的频率分析 2.2 数据的时间周期性分析 2.3 异常值检测 2.4 绩效监控 3. 日历图的缺陷 3.1 粒度受限于天数 3.2 数据密度过高时候难以解读 3.3 难以比较多个数据集 3.4 周期性较长的数据不易展示 4. 日历图…...

Docker 安装与常用命令

Docker 安装与常用命令 安装 Docker 如果您的系统尚未安装 Docker&#xff0c;可以使用以下命令安装 docker.io&#xff1a; 1. 安装命令&#xff1a; sudo apt install -y docker.io2、安装完成后&#xff0c;使用以下命令检查 Docker 是否成功安装&#xff1a; docker -…...

logback之自定义pattern使用的转换器

目录 &#xff08;1&#xff09;场景介绍 &#xff08;2&#xff09;定义转换器BizCallerConverter &#xff08;3&#xff09;logback配置conversionRule &#xff08;4&#xff09;测试效果 前文《logback之pattern详解以及源码分析》已经介绍了pattern&#xff0c;以及…...

Spring Cloud Alibaba2022之Sentinel总结

Spring Cloud Alibaba2022之Sentinel学习 Sentinel介绍 Sentinel是一个面向云原生微服务的流量控制、熔断降级组件。 Sentinel 分为两个部分&#xff1a; 核心库&#xff1a;&#xff08;Java 客户端&#xff09;不依赖任何框架/库&#xff0c;能够运行于所有 Java运行时环 …...

期末速成C++【知识点汇总完】

目录 第一章 C特点 命名空间-命名冲突 引用 new和delete 堆和栈 缺省参数 重载/隐藏/覆盖 初始化方式 第二章 面向对象的三大特征 成员变量 成员函数&#xff1a;构造函数和析构函数 访问权限和继承方式 空类 常const 静态static 友元friend 第三章 重…...

从 ELK Stack 到简单 — Elastic Cloud Serverless 上的 Elastic 可观察性

作者&#xff1a;来自 Elastic Bahubali Shetti, Chris DiStasio 宣布 Elastic Cloud Serverless 上的 Elastic Observability 正式发布 — 一款完全托管的可观察性解决方案。 随着组织规模的扩大&#xff0c;一个能够处理分布式云环境的复杂性并提供实时洞察的可观察性解决方…...

手机h5加桌面图标

手机h5应用1&#xff0c;网址浏览器添加到桌面&#xff0c;修改图标 关键代码 <!-- 手机h5加桌面图标 --> <!-- 安卓平台 chrome --> <link relapple-touch-icon-precomposed href<% BASE_URL %>logonew.png> <meta name"mobile-web-app-capab…...

Vue3,什么情况下数据会丢失响应式呢?

一、使用 reactive 定义的数据重新赋值 <template><h1>{{ foo.a }}</h1><h1>{{ bar.a }}</h1><button click"handleClick">点我</button> </template> <script setup> import { ref, reactive } from vuele…...

【Vim Masterclass 笔记03】S03L10 + S03L11:Vim 中的文本删除操作以及 Vim 思维习惯的培养(含 DIY 拓展知识点)

文章目录 Section 3&#xff1a;Vim Essentials&#xff08;Vim 核心知识&#xff09;S03L10 Vim 核心浏览命令同步练习点评课S03L11 Deleting Text and "Thinking in Vim" 文本的删除及 Vim 思维习惯的培养1 删除单个字符2 删除一个单词2.1 推广1&#xff1a;D HJK…...

《Java核心技术II》流中的filter、map和flatMap方法

filter、map和flatMap方法 filter filter通过转换产生过滤后的新流,将字符串流转化为只包含长单词的另一个流。 List words ...; Stream longWords words.stream().filter(w->w.length()>12) filter类型是Predicate(谓词&#xff0c;表示动作)类型对象&#xff0c…...

logback之自定义过滤器

logback有两种过滤器&#xff0c;一种是context中的过滤器叫TurboFilter&#xff0c;是一个全局的过滤器&#xff0c;会影响所有的日志记录。另一种是Appender中的过滤器&#xff0c;只对所在的append有效。两者大同小异&#xff0c;这里我们以Appender的过滤器为例。 &#x…...

【论文阅读笔记】IceNet算法与代码 | 低照度图像增强 | IEEE | 2021.12.25

目录 1 导言 2 相关工作 A 传统方法 B 基于CNN的方法 C 交互方式 3 算法 A 交互对比度增强 1)Gamma estimation 2)颜色恢复 3)个性化初始η B 损失函数 1)交互式亮度控制损失 2)熵损失 3)平滑损失 4)总损失 C 实现细节 4 实验 5 IceNet环境配置和运行 1 下载…...

查看 GitHub 仓库的创建时间

查看 GitHub 仓库的创建时间 1. https://api.github.com/repos/{owner}/{repository}2. curl -s https://api.github.com/repos/{owner}/{repository} | jq .created_atReferences 1. https://api.github.com/repos/{owner}/{repository} REST API endpoints for repositories…...

五种被低估的非常规统计检验方法:数学原理剖析与多领域应用价值研究

在当前的数据分析实践中&#xff0c;研究人员往往过度依赖t检验和方差分析&#xff08;ANOVA&#xff09;等传统统计方法。但是还存在多种具有重要应用价值但未受到足够重视的统计检验方法&#xff0c;这些方法在处理复杂的实际数据时具有独特优势。本文将详细介绍五种具有重要…...

mysql重置root密码(适用于5.7和8.0)

今天出一期重置mysql root密码的教程&#xff0c;适用于5.7和8.0&#xff0c;在网上搜索了很多的教程发现都没有效果&#xff0c;浪费了很多时间&#xff0c;尝试了多次之后发现这种方式是最稳妥的&#xff0c;那么废话不多说&#xff0c;往下看&#xff1a; 目录 第一步&…...

【AIGC-ChatGPT职业提示词指令】职业发展的航海指南:在人生的十字路口做出明智抉择

引言 在职业发展的海洋中&#xff0c;每个人都会遇到需要重要抉择的时刻。这些关键节点就像航海中的分岔路口&#xff0c;选择不同的航线可能驶向截然不同的目的地。如何在这些关键时刻做出明智的选择&#xff0c;需要我们既要着眼当下的风向&#xff0c;也要洞察远方的航程。…...

【从零开始入门unity游戏开发之——C#篇39】C#反射使用——Type 类、Assembly 类、Activator 类操作程序集

文章目录 前言一、前置知识1、编译器2、程序集&#xff08;Assembly&#xff09;3、元数据&#xff08;Metadata&#xff09; 二、反射1、反射的概念2、反射的作用3、反射的核心Type 类3.1 Type 类介绍3.2 不同方法获取 Type3.3 获取type类型所在的程序集的相关信息 4、反射的常…...

如何启动CentOS6远程服务器和进行ssh远程登录?

如何启动CentOS 6远程服务器&#xff1f; 在CentOS 6中&#xff0c;启动远程服务器通常涉及到配置SSH服务和VNC服务&#xff0c;以下是详细的步骤&#xff1a; 配置SSH服务 确认是否安装SSH 首先需要检查系统中是否已经安装了SSH服务&#xff0c;打开终端并输入以下命令&am…...

面向机器学习的Java库与平台

学习Java语言中与机器学习相关的各种库与平台&#xff0c;了解每个库的功能&#xff0c;以及可以用它 们解决的问题。  实现机器学习应用时需要具备的Java环境  Weka&#xff1a;一个通用的机器学习平台  Java机器学习库&#xff1a;一系列机器学习算法  Apache Mah…...

AI大模型语音识别转文字

提取音频 本项目作用在于将常见的会议录音文件、各种语种音频文件进行转录成相应的文字&#xff0c;也可从特定视频中提取对应音频进行转录成文字保存在本地。最原始的从所给网址下载对应视频和音频进行处理。下载ffmpeg(https://www.gyan.dev/ffmpeg/builds/packages/ffmpeg-…...

GAN对抗生成网络(一)——基本原理及数学推导

1 背景 GAN(Generative Adversarial Networks)对抗生成网络是一个很巧妙的模型&#xff0c;它可以用于文字、图像或视频的生成。 例如&#xff0c;以下就是GAN所生成的人脸图像。 2 算法思想 假如你是《古董局中局》的文物造假者&#xff08;Generator,生成器&#xff09;&a…...

LeetCode - 初级算法 数组(旋转数组)

旋转数组 这篇文章讨论如何通过编程实现数组元素的旋转操作。 免责声明:本文来源于个人知识与公开资料,仅用于学术交流。 描述 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 示例: 输入: nums = [1,2,3,...

目标检测入门指南:从原理到实践

目录 1. 数据准备与预处理 2. 模型架构设计 2.1 特征提取网络原理 2.2 区域提议网络(RPN)原理 2.3 特征金字塔网络(FPN)原理 2.4 边界框回归原理 2.5 非极大值抑制(NMS)原理 2.6 多尺度训练与测试原理 2.7 损失函数设计原理 3. 损失函数设计 4. 训练策略优化 5. 后…...

连接github和ai的桥梁:GitIngest

Git ingest GitIngest - 将任何 Github 仓库转变为适合 LLM 的友好型提示文本 (https://github.com/cyclotruc/gitingest) 输入 Github 地址或者名称&#xff0c;GitIngest 就会提供该仓库的总结、目录结构、仓库内容的文本内容 你可以复制这些文本与 AI 大模型更好地对话...

百度贴吧的ip属地什么意思?怎么看ip属地

在数字化时代&#xff0c;IP地址不仅是网络设备的唯一标识符&#xff0c;更承载着用户的网络身份与位置信息。百度贴吧作为广受欢迎的社交平台&#xff0c;也遵循相关规定&#xff0c;在用户个人主页等位置展示账号IP属地信息。那么&#xff0c;百度贴吧的IP属地究竟意味着什么…...

5.系统学习-PyTorch与多层感知机

PyTorch与多层感知机 前言PyTroch 简介张量&#xff08;Tensor&#xff09;张量创建张量的类型数据类型和 dtype 对应表张量的维度变换&#xff1a;张量的常用操作矩阵或张量计算 Dataset and DataLoaderPyTorch下逻辑回归与反向传播数据表格 DNN&#xff08;全连结网络&#x…...

wpf 基于Behavior库 的行为模块

Microsoft.Xaml.Behaviors 是一个用于WPF&#xff08;Windows Presentation Foundation&#xff09;的行为库&#xff0c;它的主要作用是允许开发者在不修改控件源代码的情况下&#xff0c;为控件添加自定义的行为和交互逻辑。行为库的核心思想是通过定义可重用的行为组件&…...

【一文解析】新能源汽车VCU电控开发——能量回收模块

一、概述 VCU&#xff08;Vehicle Control Unit&#xff0c;整车控制器&#xff09;能量回收功能是新能源汽车&#xff08;如纯电动汽车和混合动力汽车&#xff09;中非常重要的一个环节。它主要是在车辆减速或制动过程中&#xff0c;将车辆的部分动能转化为电能&#xff0c;并…...

鸿蒙TCPSocket通信模拟智能家居模拟案例

效果图 一、智能家居热潮下的鸿蒙契机 在当下科技飞速发展的时代&#xff0c;智能家居已如浪潮般席卷而来&#xff0c;深刻地改变着我们的生活方式。从能依据环境光线自动调节亮度的智能灯具&#xff0c;到可远程操控、精准控温的智能空调&#xff0c;再到实时监测健康数据的智…...

【Spring Boot 实现 PDF 导出】

Spring Boot 实现 PDF 导出 在Spring Boot应用程序中实现PDF导出功能&#xff0c;可以选择多种库和技术栈。每种方法都有其优缺点&#xff0c;适用于不同的场景。以下是四种常见的方式&#xff1a;iText、Apache PDFBox、JasperReports 和 Thymeleaf Flying Saucer。我将详细…...

【Python】selenium结合js模拟鼠标点击、拦截弹窗、鼠标悬停方法汇总(使用 execute_script 执行点击的方法)

我们在写selenium获取网络信息的时候&#xff0c;有时候我们会受到对方浏览器的监控&#xff0c;对方通过分析用户行为模式&#xff0c;如点击、滚动、停留时间等&#xff0c;网站可以识别出异常行为&#xff0c;进而对Selenium爬虫进行限制。 这里我们可以加入JavaScript的使…...

leetcode hot 100 前k个高平元素

347. 前 K 个高频元素 已解答 中等 相关标签 相关企业 给你一个整数数组 nums 和一个整数 k &#xff0c;请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。 class Solution(object):def topKFrequent(self, nums, k):""":type nums: Lis…...

数据结构漫游记:静态双向链表

嘿&#xff0c;各位技术潮人&#xff01;好久不见甚是想念。生活就像一场奇妙冒险&#xff0c;而编程就是那把超酷的万能钥匙。此刻&#xff0c;阳光洒在键盘上&#xff0c;灵感在指尖跳跃&#xff0c;让我们抛开一切束缚&#xff0c;给平淡日子加点料&#xff0c;注入满满的pa…...

Object.defineProperty() 完整指南

Object.defineProperty() 完整指南 1. 基本概念 Object.defineProperty() 方法允许精确地添加或修改对象的属性。默认情况下&#xff0c;使用此方法添加的属性是不可修改的。 1.1 基本语法 Object.defineProperty(obj, prop, descriptor)参数说明&#xff1a; obj: 要定义…...

1Panel自建RustDesk服务器方案实现Windows远程macOS

文章目录 缘起RustDesk 基本信息实现原理中继服务器的配置建议 中继服务器自建指南准备服务器安装1Panel安装和配置 RustDesk 中继服务防火墙配置和安全组配置查看key下载&安装&配置客户端设置永久密码测试连接 macOS安装客户端提示finder写入失败hbbs和hbbr说明**hbbs…...

nginx学习之路-windows系统安装nginx

文章目录 1. 下载2. 启动3. 验证参考文档 1. 下载 官方下载地址&#xff1a;https://nginx.org/en/download.html 可以下载windows版本&#xff0c;如nginx-1.26.2.zip。解压后&#xff0c;加入系统变量。 2. 启动 可以使用命令行启动&#xff08;windows系统自带的cmd可能…...

Paimon_01_241020

1. 概述 1.1. 核心特点 统一批处理和流处理&#xff08;流和批同一套代码&#xff09;数据湖能力多种引擎平权变更日志生成丰富的表类型&#xff08;主键表、append-only&#xff0c;有序的流式读取来代替消息队列&#xff09;模式演化&#xff08;schema变更&#xff09; 1…...

人工智能:变革时代的核心驱动力

求各位观众老爷看一看 先声明一下&#xff0c;该内容由于篇幅过长&#xff0c;可能会有一些地方存在一些小问题请大家谅解 观众老爷们&#xff0c;点个免费的赞和关注呗&#xff0c;您们的支持就是我最大的动力~ 人工智能&#xff1a;变革时代的核心驱动力 一、引言 在当今…...

【机器学习】工业 4.0 下机器学习如何驱动智能制造升级

我的个人主页 我的领域&#xff1a;人工智能篇&#xff0c;希望能帮助到大家&#xff01;&#xff01;&#xff01;&#x1f44d;点赞 收藏❤ 随着科技的飞速发展&#xff0c;工业 4.0 浪潮正席卷全球制造业&#xff0c;而机器学习作为这一变革中的关键技术&#xff0c;正以前…...

数据分析-Excel

数据类型和函数初步 Excel中有文本类型和数值类型–但是无法用肉眼分辨出来isnumber来区分是否是数值类型text和value函数可以完成数值类型以及文本类型的转换单元格第一位输入’方式明确输入的是文本sum函数必须是数值类型 文本连接-and-or-not-if-mod-max函数 字符串的连接…...

Kubernetes第二天

1.pod运行一个容器 1.创建目录 mkdir -p /manifests/pod 2.编写pod资源清单文件 vim 01-myweb.yaml 说明&#xff1a; apiVersion:指的是Api的版本 metadata&#xff1a;资源的元数据 spec:用户期望的资源的运行状态 status&#xff1a;资源实际的运行状态 由于拉取远…...

【Java 学习】深度剖析Java多态:从向上转型到向下转型,解锁动态绑定的奥秘,让代码更优雅灵活

&#x1f4ac; 欢迎讨论&#xff1a;如对文章内容有疑问或见解&#xff0c;欢迎在评论区留言&#xff0c;我需要您的帮助&#xff01; &#x1f44d; 点赞、收藏与分享&#xff1a;如果这篇文章对您有所帮助&#xff0c;请不吝点赞、收藏或分享&#xff0c;谢谢您的支持&#x…...