使用 docker 部署 kvm 图形化管理工具 WebVirtMgr

news/2024/9/17 7:11:06/ 标签: docker, 运维, kvm

文章目录

    • @[toc]
    • 前提条件
    • 镜像构建
    • 启动 webvirtmgr
      • 创建其他 superuser
      • 配置 nginx 反向代理和域名访问
      • 绑定 kvm 宿主机
        • local socket
        • tcp 连接
      • 虚拟机创建
      • 创建快照
      • 虚拟机克隆
      • 删除虚拟机

  • kvm 官方提供了以下这些图形化管理,license 这块也提示了是商业版(Commercial)的还是哪个开源协议的,或者免费的范围
  • 这边主要的需求就是有个 kvm 的图形化管理工具,通过浏览器就可以访问,机器不多,也不涉及私有云,这边就选择了 WebVirtMgr,能有简单的颜值,还有 vnc 模式访问虚拟机
    • WebVirtMgr 是用 PythonDjango 编写的,基于 Libvirt 的 Python 接口,将日常 kvm 的管理操作变的更加的可视化。
    • WebVirtMgr的官网地址:http://retspen.github.io/
    • WebVirtMgr的 github 地址:https://github.com/retspen/webvirtmgr
Name/URLDescriptionUI TypeLast UpdatedNotesLicense
AbiquoAbiquo is a technology-agnostic solution for enterprises and service providers who want to quickly and simply build, manage and develop public and private clouds based on their existing heterogeneous environments.Web, RESTActiveKVM, Xen, VirtualBox, VMware, Hyper-V & XenServer support; uses libvirtCommercial
ArchipelArchipel is an Open Source project that aims to bring push notifications to virtualization orchestration using XMPP.WebActiveKVM, Xen, Virtual Box & OpenVZ support; uses libvirtAGPL v3
AQemua Qt4 user interface for KVMDesktop2013-05-30GPL v2
cloonixcloonix is a virtualization management framework aimed at virtual networks building based on kvm.Gui/cliActiveKVMRPL Licence
CloudStackCloudstack is an open source project that enables the deployment, management, and configuration of multi-tier and multi-tenant infrastructure cloud services using Xen, KVM and VMware hypervisors.WebActiveKVM, Xen & VMware supportApache License v2
ConVirtConVirt 2.0 Open Source is the leading open source product for managing Xen and KVM, enabling you to standardize and proactively manage your virtualized environment in a centralized fashion.WebActiveXen & KVM; formerly known as xenmanGPL v2
Enomalya programmable virtual cloud infrastructure for small, medium and large businessesWeb, RESTNot available as of 2010-02-08they have commercial and open source editionsCommercial/AGPL v3
EucalyptusEucalyptus is open source software for building AWS-compatible private and hybrid clouds. Eucalyptus allows IT organizations to build an on-premises Infrastructure as a Service (IaaS) cloud that pools together compute, storage, and network resources. With Eucalyptus, developers can leverage knowledge and tools around AWS APIs, including EC2, S3, EBS, IAM, Auto Scaling, Elastic Load Balancing, and CloudWatch. IT can create a flexible hybrid cloud environment so that developers can develop sooner, test more, and deploy faster while giving IT and cloud admins greater control of cloud performance, scale, and security.Web, CLI, REST, SOAPActiveSupports KVM and VMware. Uses libvirt. View the Eucalyptus Compatibility Matrix: http://bit.ly/QfH4IvGPL v3
ForemanForeman is aimed to be a Single Address For All Machines LifeCycle Management including bare metal / vm / cloud provisioning, configuration managememnt and configureation reports/auditing using puppetWeb, REST, CLIActiveKVM, VMWare, oVirt RHEV-M, EC2, OpenStackGPL v3
GanetiGaneti is a cluster virtual server management software tool built on top of existing virtualization technologiesCLIActiveKVM support added in Ganeti 2.0GPL v2
GKVMA Gnome user interface for KVM.Desktop2007-08-01GPL v2
KaresansuiKaresansui is an open-source virtualization management application. It’s smart graphical user interface lowers your management cost, and brings a total management/audit solution for both physical and virtual servers.Web, RESTNovember 2013KVM & Xen support; uses libvirtLGPL v2.1/GPL v2
kimchiKimchi is an HTML5 based management tool for KVM. It is designed to make itas easy as possible to get started with KVM and create your first guest.WEBActiveKVMLGPL,Apache License v2
KubevirtVirtualization API for KubernetesCLI, APIActiveRun VMs in KubernetesApache License v2
kvmadma minimalistic set of command-line tools to control multi-user utilization of KVMCLI2007-09-25GPL v2
kvmupdownsimple, robust and no-bloat management interface.CLILink broken, probably terminated projectKVMpublic domain
kvm-adminPython scripts for managing the guests (boot, shutdown …) and include a commandline monitor .CLIActivekvm supportGPL v2
kvm-wrapperkvm-wrapper is a lightweight, simple and intended to be hackable set of shell scripts that help manage kvm virtual machines a great deal.CLIActiveKVM supportWTFPL (v2)
Mist.ioMist.io provides a unifed dashboard / API for managing your entire infrastructure - public and private clouds, KVM and VMware hypervisors, bare metal, and containers. You can install the open-source version or use the freemium service. Try it outWeb, Mobile, REST API, CLIActiveUses libvirt and libcloud for VM management. Supports KVM, several public cloud providers, OpenStack, Docker and bare metal servers.AGPL v3 for the open source version, Commercial for the service
MorpheusMorpheus provides a single dashboard for managing hybrid infrastructure - KVM, Xen, VMware hypervisors, public clouds, bare metal, and containers. Learn more.UI, API, and CLIActiveCommercial (community licensing for testing and lab environments; up to 25 workloads and 3 clouds)
nbsvmNo Bullshit VMs. No setup required. No dependencies but sudo, and LVM or ZFS. Start, stop, create and clone images and view VMs using simple chained commands. Basically applies sane (overridden by cli or file) defaults to the kvm invocation and gets out of the way. Sudo invocation is designed to allow user access controls.CLIFebruary 2014WTFPL 2
Nimbula DirectorNimbula Director is a Cloud Operating System that enables Infrastructure as a Service using the KVM.Web, CLI, RESTActiveKVM supportCommercial (Freemium)
op5op5 develops and delivers op5 Monitor a enterprise-class software for IT monitoring and administration of the whole IT. op5 developed a KVM plug-in to monitor KVM virtualization infrastructure that allows organizations to have better capacity planning, which enables the provisioning of usage of resources such as storage, CPU, and memory more proactively.Web, RESTActiveUses libvirtGPL v2
OpenNebulaan open source virtual infrastructure engineCLI, XML-RPCActivecloud computing managment; uses libvirtApache License v2
OpenNodeRHEL/CentOS based open-source server virtualization and management solution - simple bare-metal installer, providing KVM+OpenVZ host and standard libvirt, func management interfaces together with standard cli tools like virsh and vzctl. OpenNode Management Server with ajax web-based management console available - as is RPC-JSON API interface.Web, CLI, APIActiveBare-metal installer, KVM, OpenVZ hypervizors and variety of management toolsUnknown
openQRMopenQRM is the next generation, open-source Data-center management platform.WebActiveKVM, Xen, VMware and Linux V-Server supportGPL v2
oVirtoVirt is a virtualization management framework constisting of a small host image, the oVirt Node, that provides the libvirt service to host virtual machines, and a robust vm management software stack, controlled by a web-based management interface, the oVirt Server.WebActiveuses libvirtApache License v2
Platform9 Managed OpenStackPlatform9 makes it very easy to manage a KVM environment with resource pooling and automation. Platform9’s Openstack service easily integrates with any new or existing Linux servers. KVM expertise is helpful but not required. The OpenStack service supports major Linux distributions including CentOS, RHEL & Ubuntu. See the demos for KVM.UI, OpenStack CLI, OpenStack API & integrations (puppet, ansible, chef, vagrant, etc).ActiveFast, Easy & Affordable for anyone familiar with Linux. See KVM Management w/ OpenStack.Commercial. A free trial is available.
Proxmox VEProxmox Virtual Environment (Proxmox VE) is an open-source server virtualization management platform to manage VMs and containers.The Debian-based platform uses KVM as hypervisor and also provides OS-level virtualization using LXC containers. It provides enterprise-class features like clustering, high availability, networking, live migration, backup/restore, integrates a built-in firewall and come with various storage plugins such as LVM, LVM-thin, iSCSI/kernel, iSCSI/libiscsi, Ceph/RBD, Sheepdog, ZFS over iSCSI, ZFS (local), directory, NFS, CIFS, and GlusterFS.Web, CLI, APIActiveBare-metall ISO installer including KVM and LXC management toolsAGPL v3
PVM( PDNSoft Virtual Machine Management System) is a hypervisor based on KVM.It provides new application stack to manage KVM virtual machines instead of using Libvirt with it’s own considerations.Cluster and user awareness is specific features in PVM design, so managing of HA and other features is done by PVM application stack that is placed directly on KVM.Desktop,CLIActiveBar-metall installerCommercial
Plain qemu/kvmYou can run qemu/kvm straight from the command lineCLIActiveSee man (qemu-system-x86_64 or kvm or qemu-kvm) for more infoGPL v2
Red Hat Virtualization / RHVCommercial management solution for RHEL / KVM.WebActiveCommercial
SolusVMThe most popular control panel for commercial use.WebActiveKVM, Xen & OpenVZ supportCommercial
Stackops Openstack DistroStackops is an Openstack Nova distribution verified and tested for KVM. You only need to download the ISO image with the distro and install it on one or more servers.CLI, RESTActiveKVM & QEMU (libvirt based)Apache License v2
UVMMUCS Virtual Machine Manager (UVMM) is an easy-to-use and powerful administration tool for KVM. It virtualizes Microsoft Windows, Univention Corporate Server and other Linux distributions by providing all the necessary functions for creating and managing virtual instances (also OpenStack and Amazon EC2-based resources) and hard drives on physical servers centrally via a web-based modern interface. On AWS it also manages Virtual Private Clouds (VPC). UVMM is included in Univention Corporate Server by default, an easy-to-use and scalable Enterprise distribution with an integrated management system for the central management of heterogeneous environments.Web, CLIActiveSupports KVM, Uses libvirtFree for use, AGPL v3
virshA minimal shell around libvirt for managing VMsCLIActiveUses libvirtLGPL
VirtualbricksPython-gtk GUI to manage guest and hybrid (host/guest) networks.CLI2011-11-23kvm, qemu, ksm & VDE supportGPL v2
VMM / Virtual Machine ManagerAlso known as virt-manager. A desktop user interface for managing virtual machines.DesktopActiveUses libvirtGPL v2
VMM’s supporting tools virt-install/clone/convertCommand line tools for provisioning new VMs, cloning existing VMs and importing / converting appliance images.CLIActiveUses libvirtGPL v2
VMmanagerSoftware solution for virtualization management that can be used both for hosting virtual machines and building a cloud. With VMmanager you can manage not only one server, but a large cluster of hypervisors. It delivers a number of functions, such as live migration that allows for load balancing between cluster nodes, monitoring CPU, memory and I/O operation enabling to detect problematic nodes, use of local and networks storages, and many tools for efficient management.Web, CLI, RESTActiveKVM, uses libvirtCommercial
vmmaestrovmmaestro is a tiny shell script which can start/stop/monitor KVM guests.CLIActiveKVMMIT License
VM-KingVM-King is an Android App that allows you to manage your hypervisior remotely from your Android mobile or tablet. This app supports the following functions: Start/stop/destroy VM, restore and delete snapshots, get screenshot of running VMs, get remote display connection information (VNC/Spice).mobile, tabletActiveKVMfree
WebVirtMgrWeb service for managing VMs based on the KVMWEBActiveOnly KVM; use libvirtApache License v2
WitsbitsWitsbits enables you to set up your servers with virtualization and deploy virtual machines faster than ever before. It’s a complete virtualization solution with a self-upgrading hypervisor and cloud-based centralized management, reducing time spent on maintenance to a fraction of what other solutions require. The self-configuring hypervisor comes as a Live CD, delivering the fastest time-to-deployment by removing the need for spending time on installation and configuration.WebActiveLive CD Hypervisor with SaaS Management SystemFree for 5 CPUs (full version)

前提条件

开始这篇文章的时候,默认已经部署了 kvm,如果没有部署,可以参考我之前的博客:CentOS 7 部署 KVM 虚拟化

以下的操作环境是 centos 7 这个发行版

镜像构建

  • 官方最后一次更新已经是 2015年6月22日 了,官方也没有 docker 镜像,这边选择咱们自己构建
  • 如果你的服务器有魔法,可以直接 git clone 一下 webvirtmgr 的包,没有的话,可以和我一样,提前从 github 上下载下来,上传到机器上,然后 ADD 到容器里面
  • 这个项目已经很悠久了,只能用 2.x 的 python,这里就直接用 centos 作为基础镜像,对比过 debian 和 python 镜像,构建完都要1G多,用 centos 构建完只有 560MB
dockerfile">FROM docker.m.daocloud.io/centos:7.6.1810ADD start.sh /start.sh
ADD webvirtmgr-4.8.9.tar.gz /WORKDIR /webvirtmgr-4.8.9# yum 相关的依赖
RUN rm -f /etc/yum.repos.d/*.repo && \curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo && \yum install -y epel* && \yum install -y python-pip libvirt-python libxml2-python python-websockify gcc python-devel && \yum clean all# python 相关的依赖
RUN pip install numpy==1.16.3 -i https://mirrors.aliyun.com/pypi/simple/ && \pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/ && \echo no | python manage.py syncdb && \echo yes | python manage.py collectstatic# webvirtmgr 通过 tcp 连接 kvm 相关的依赖
RUN yum install -y cyrus-sasl cyrus-sasl-scram cyrus-sasl-devel cyrus-sasl-md5 && \yum clean allCMD ["/usr/bin/bash","/start.sh"]

这里是 ADD 里面的启动脚本 start.sh,本地记得 chmod +x start.sh 加个执行权限

echo "from django.contrib.auth.models import User; User.objects.create_superuser('admin', 'admin@localhost', '1qaz@WSX')" | /usr/bin/python /webvirtmgr-4.8.9/manage.py shell
/usr/bin/python /webvirtmgr-4.8.9/manage.py run_gunicorn --bind 0.0.0.0:8000 --log-file /webvirtmgr-4.8.9/webvirtmgr.log --daemon
if [ $? -eq 0 ];thennohup /usr/bin/python /webvirtmgr-4.8.9/console/webvirtmgr-console &> /dev/null &sleep 3tail -f /webvirtmgr-4.8.9/webvirtmgr.log
fi

构建镜像

docker build -t webvirtmgr:4.8.9-centos-7.6 .

启动 webvirtmgr

启动参数仅供参考,里面有些配置是我本地环境相关的

  • 如果 kvm 和 webvirtmgr 是相同机器,可以把 /var/run/libvirt/libvirt-sock 文件带入到容器内,就可以实现 local socket 的方式连接 kvm 宿主机了
docker run -d \
--restart=always \
--network host \
--memory 1024m \
--name webvirtmgr \
-v /var/run/libvirt/libvirt-sock:/var/run/libvirt/libvirt-sock \
webvirtmgr:4.8.9-centos-7.6

创建其他 superuser

进入 webvirtmgr 容器

docker exec -it webvirtmgr bash

创建其他超级用户

python manage.py createsuperuser

浏览器访问 IP:8000 看看能不能访问到 webvirtmgr 的页面

在这里插入图片描述

默认的用户名是 admin,密码是 1qaz@WSX,在启动脚本里面可以找到

在这里插入图片描述

配置 nginx 反向代理和域名访问

这一步不是必须的,有需求就做,这里也是用的 docker 容器的方式运行的,下面是需要打包到容器内的配置文件

user  nginx;
worker_processes  auto;error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;events {worker_connections  1024;
}http {include       /etc/nginx/mime.types;default_type  application/octet-stream;log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';# access_log  /var/log/nginx/access.log  main;# sendfile        on;# tcp_nopush     on;keepalive_timeout  65;gzip  on;server {listen       80;# 这里的域名,修改成自己的server_name  virtmgr.icu;# access_log /var/log/nginx/webvirtmgr_access_log;location / {proxy_pass http://192.168.18.222:8000;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-for $proxy_add_x_forwarded_for;proxy_set_header Host $host:$server_port;proxy_set_header X-Forwarded-Proto $scheme;proxy_connect_timeout 600;proxy_read_timeout 600;proxy_send_timeout 600;# 这里的配置,也可以再放大一点,这个会影响 iso 镜像的上传## 如果直接放到指定的 iso 目录下,那就不受影响client_max_body_size 5120M;}location /static {proxy_pass http://192.168.18.222:8000/static;}}
}

下面是 Dockerfile

dockerfile">FROM docker.m.daocloud.io/nginx:1.26.0
ADD ./nginx.conf /etc/nginx/nginx.conf

构建镜像

docker build -t webvirtmgr-static:4.8.9-nginx-1.26.0 .

启动镜像

docker run -d --rm \
-p 80:80 \
--memory 200m \
--name webvirtmgr-static \
webvirtmgr-static:4.8.9-nginx-1.26.0

使用域名访问,域名没有 dns 解析的,可以本地自己配置一下 hosts

kvm__237">绑定 kvm 宿主机

local socket

在浏览器开始配置

在这里插入图片描述

绑定后,和主机通信成功的,就是绿色的,点击 192.168.18.222-local 就可以进去管理了

在这里插入图片描述

我本地用 virsh 创建过虚拟机,这里可以看到,也被展示出来了

在这里插入图片描述

tcp 连接

修改 kvm 配置,如果 kvm 已经有机器的,这个操作需要慎重考虑一下,或者有个环境能小规模模拟一下

  • /etc/libvirt/libvirtd.conf
# 修改 /etc/libvirt/libvirtd.conf 文件,把下面这些参数的注释打开
listen_tls = 0
listen_tcp = 1
tcp_port = "16509"
listen_addr = "0.0.0.0"
auth_tcp = "sasl"
  • /etc/sysconfig/libvirtd
# 修改 /etc/sysconfig/libvirtd  文件,把下面参数的注释打开
LIBVIRTD_ARGS="--listen"
  • /etc/sasl2/libvirt.conf
# 修改 /etc/sasl2/libvirt.conf 文件,把下面参数的注释修改,注释掉之前打开的参数
mech_list: DIGEST-MD5
sasldb_path: /etc/libvirt/passwd.db

配置用户名密码,输入两次密码回车就可以了

saslpasswd2 -a libvirt virtadmin

验证授权文件

sasldblistusers2 -f /etc/libvirt/passwd.db

可以看到用户名和主机名

virtadmin@dream: userPassword

检查是否有 DIGEST-MD5 类型,没有该类型的话,执行 tcp 连接会有下面的报错:

  • error: failed to connect to the hypervisor
  • error: authentication failed: authentication failed
pluginviewer -c | grep -i 'DIGEST-MD5'

如果没有返回的话,安装一下相关的插件

yum install -y cyrus-sasl cyrus-sasl-scram cyrus-sasl-devel cyrus-sasl-md5

重启 kvm

systemctl restart libvirtd

测试 tcp 连接

virsh -c qemu+tcp://dream/system list

提示输入用户名密码,然后能正常返回虚拟机列表

Please enter your authentication name: virtadmin
Please enter your password:Id    Name                           State
----------------------------------------------------1     openeuler-20.03-lts-sp4-init   running

在 webvirtmgr 添加 tcp 连接

在这里插入图片描述

绑定后,和主机通信成功的,就是绿色的,点击 192.168.18.222-tcp 就可以进去管理了

在这里插入图片描述

和上面的 local socket 一样,可以看到之前创建过的虚拟机

在这里插入图片描述

虚拟机创建

  • 虚拟机创建这块,还是 virt-manager 相对方便点,使用 webvirtmgr 创建虚拟机,需要先去存储池创建镜像(前提是,网络这些都创建好了,因为我的是之前使用过 kvm 创建,所以相关信息也都直接带入了,就只需要创建存储池的镜像就好了)

在这里插入图片描述

创建虚拟机

  • 确认存储池创建了对应的镜像
  • New Instance 创建实例
  • Custom Instance 的方式创建
  • 配置虚拟机名称,CPU,内存资源,选择提前创建的磁盘镜像和网络网卡,关闭主机模式,点击创建
  • 在设置 -> media 里面找到需要使用的 iso 镜像,点击连接
  • 在Power里面点击启动
  • 在Access里面点击控制台

在这里插入图片描述

进入到指定的主机里面,点统计可以看到当前的机器资源使用情况

在这里插入图片描述

此处省略安装过程,这边可以查看一下基础架构,可以看到展示的内容都是一样的

在这里插入图片描述

查看 kvm 宿主机的资源使用情况

在这里插入图片描述

创建快照

  • To take a snapshot, shutdown the instance. 从快照持可以看到,快照要求先关机,暂停也不行

在这里插入图片描述

虚拟机克隆

和快照一样,克隆也需要关机

  • 设置里面找到克隆
  • 点一下 random MAC address 获取一个随机的 MAC 地址,避免和之前的机器冲突了,导致网络不通
  • 根据情况,选择修改克隆后的机器名称和磁盘镜像名称
  • 选中 Metadata 后,点击克隆就可以了

在这里插入图片描述

删除虚拟机

在这里插入图片描述


http://www.ppmy.cn/news/1522694.html

相关文章

利士策分享,如何规划多彩的大学生活?

利士策分享,学习规划多彩的大学生活 踏入大学,如同开启一场充满未知与可能的旅程。 为了让这段旅程不仅充满学术的熏陶,还洋溢着生活的多彩与人际的和谐,我们需要精心规划,积极行动。 一、多彩规划:点亮大学…

SpringBoot教程(十五) | SpringBoot集成RabbitMq(消息丢失、消息重复、消息顺序、消息顺序)

SpringBoot教程(十五) | SpringBoot集成RabbitMq(消息丢失、消息重复、消息顺序、消息顺序) RabbitMQ常见问题解决方案问题一:消息丢失的解决方案(1)生成者丢失消息丢失的情景解决方案1&#xf…

点赞收藏功能该如何设计?

这周给一个小伙伴做模拟面试,因为他在公司的项目是一个短视频电商的项目,模仿的是微博。看到他简历里写了做了短视频的收藏功能,于是让他讲讲具体的做法是什么样子的。 结果回答的并不理想,答案里有不少硬伤,今天松哥…

【Python】CSV文件的简单使用

1.读取CSV文件 import csvpath "123.csv"with open(path) as f: # 打开csv文件csvReader csv.reader(f) # 读文件建立Reader对象listReader list(csvReader) # 将数据转换成列表print(listReader)2.写入CSV文件 import csvpath "123.csv"with ope…

uniapp小程序下载缓存服务器上的图片

1. 使用uni.downloadFile,但是注意下载图片的地址里的域名,需要在微信公众平台里面的downloadFile合法域名进行配置。 export default function downloadAndCacheImage(imageUrl, name) {return new Promise((resolve, reject) > {console.log("imageUrl&q…

【消息中间件】Kafka从入门到精通

1 Kafka入门 概念 架构 1.1 概述 1.1.1 初始Kafka Kafka是一个由Scala和Java语言开发的,经典高吞吐量的分布式消息发布和订阅系统,也是大数据技术领域中用作数据交换的核心组件之一。以高吞吐,低延迟,高伸缩,高可靠…

DDD的实现流程

领域驱动设计(DDD)是一种面向领域的软件设计方法。它强调将业务知识和业务逻辑集成到软件设计中,从而提高软件系统的可维护性、可扩展性和可测试性。DDD 的实现流程主要包括以下几个步骤: 确定业务领域 首先,需要明确…

有temp表包含A,B两列,使用SQL,对B列进行处理,形成C列,按A列顺序,B列值不变,则C列累计技术,B列值变化,则C列重新开始计数

有temp表,使用SQL,对B列进行处理,形成C列,按A列顺序,B列值不变,则C列累计技术,B列值变化,则C列重新开始计数 建表语句如下 CREATE TABLE temp(A STRING ,B STRING );INSERT INTO …

C语言 - 预处理详解(一)#预定义符号 ##define #undef

文章目录 前言 一、预定义符号 二、#define (一)、#define 定义的标识符 (二)、#define 定义的宏 (三)、#define 替换规则 (四)、# 和 ## 1、 # 的作用 2、## 的作用 (五)、带副作用的宏参数 (六)、宏和函数的对比 (七)、命名约定 三、#undef 总结 前言 路漫漫其修远兮&#…

【双指针】N数之和

N数之和 两数之和题目题目解析暴力思路双指针优化 三数之和题目题目解析暴力思路双指针优化 四数之和题目题目解析暴力思路双指针优化 两数之和 题目 题目链接: 查找总价格为目标值的两个商品 虽然题目名字不是两数之和, 但是由于和后面的三数之和, 四数之和是连起来的, 于是…

【持续更新】Adobe Audition 2024 (v24.4.1.003)最新免费修改版

Adobe Audition是一款专为录音、编辑和掌握音频素材设计的专业解决方案。此编辑器支持从MP3、AAC到AIFF等多种重要格式,并能从CD中导入音轨。 其多轨编辑功能使您可以在任意数量的轨道上混合音乐、语音和声音片段,运用丰富的工作室动态效果,如…

nginx配置中的服务器名称

通常,在nginx的配置节中: server {listen 80;server_name example.org www.example.org;... } server_name(服务器名称) 指令定义确定哪个服务器块用于给定请求。可以使用确切名称、通配符名称、ip地址或正则表达式来定义它们: se…

如何在 AWS S3 中设置跨区域复制

如何在 AWS S3 中设置跨区域复制 概述 欢迎来到雲闪世界。 Amazon Simple Storage Service (S3) 是一种可扩展的对象存储服务,广泛用于存储和检索数据。其主要功能之一是跨区域复制 (CRR),允许跨不同的 AWS 区域自动异步复制对象。此功能对于灾难恢复、…

二手手机回收小程序搭建,小程序功能特点

随着社会生活水平的提高,对手机的更新换代的速度也在逐渐加快,出现了大量的闲置手机,而这也给手机回收市场带来了巨大的发展空间! 目前,手机回收市场进入到了发展快速期,吸引了越来越多的企业加入大市场中…

4.7 Sensors -- useScroll

4.7 Sensors – useScroll https://vueuse.org/core/useScroll/ 作用 响应式的监听滚动位置和状态。 官方示例 <script setup lang"ts"> import { useScroll } from vueuse/coreconst el ref<HTMLElement | null>(null) const { x, y, isScrolling…

Spring常用中间件

1. 数据库中间件 &#xff08;1&#xff09;MySQL: 常用的关系型数据库&#xff0c;支持JDBC和JPA。 &#xff08;2&#xff09;PostgreSQL: 功能强大的开源关系型数据库&#xff0c;支持复杂查询。 &#xff08;3&#xff09;MongoDB: NoSQL数据库&#xff0c;适合存储非结构化…

【Rust练习】13.数组

练习题来自&#xff1a;https://practice-zh.course.rs/compound-types/array.html 1 fn main() {// 使用合适的类型填空let arr: __ [1, 2, 3, 4, 5];// 修改以下代码&#xff0c;让它顺利运行assert!(arr.len() 4); }显然这个数组的长度是5. fn main() {// 使用合适的类…

ELK学习笔记(三)——使用Filebeat8.15.0收集日志

使用Filebeat收集日志 前面教程已经把ElasticSearch和Kibana部署完毕&#xff0c;接着我们就要使用filebeat去收集我们的java服务日志&#xff0c;这里首先介绍一下ELK和EFK的区别。 一、ELK和EFK的区别 在收集和处理日志时&#xff0c;使用 ELK&#xff08;Elasticsearch, …

8. GIS数据分析师岗位职责、技术要求和常见面试题

本系列文章目录&#xff1a; 1. GIS开发工程师岗位职责、技术要求和常见面试题 2. GIS数据工程师岗位职责、技术要求和常见面试题 3. GIS后端工程师岗位职责、技术要求和常见面试题 4. GIS前端工程师岗位职责、技术要求和常见面试题 5. GIS工程师岗位职责、技术要求和常见面试…

tabBar设置底部菜单选项以及iconfont图标

tabBartabBar属性:设置底部 tab 的表现 ​ ​ ​ ​ 首先在pages.json页面写一个tabBar对象,里面放入list对象数组,里面至少要有2个、最多5个 tab, 如果只有一个tab的话,H5(浏览器)依然可以显示底部有一个导航栏,如果没有,需要重启后才有,小程序则报错,只有2个以上才可以…