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

项目五 OpenStack镜像管理与制作

任务一 理解OpenStack镜像服务

1.1 •什么是镜像

镜像通常 是指一系列文件或一个磁盘驱动器的精确副本
虚拟机 所使用的虚拟磁盘, 实际上是 一种特殊格式的镜像文件
环境下尤其需要 镜像。
镜像 就是一个模板,类似于 VMware 的虚拟机模板,其预先安装基本的操作系统和其他 应用软件
OpenStack 中的镜像就是虚拟机镜像,是包含有可启动的操作系统的虚拟机实例磁盘的单个文件。

1.2 •什么是镜像服务

镜像 服务用来 管理 镜像,让 用户能够发现、获取和保存镜像
镜像服务主要功能
Ø 查询 和获取镜像的元数据和镜像本身。
Ø 注册 和上传虚拟机镜像,包括镜像的创建、下载和管理。
Ø 维护 镜像信息,包括镜像的元数据和镜像本身。
Ø 支持 多种方式存储 镜像。
Ø 虚拟机实例执行创建 快照命令创建 新的镜像, 或备份 虚拟机实例的状态。
Glance 是关于镜像的 中心。

1.3 •Glance架构

1.4 •查看Glance配置文件

Glance API 服务器配置文件名一般是 glance- api.conf ,其配置对应 Glance glance- api 服务,其中镜像存储后端的相关配置在 [ glance_store ] 节中 定义,默认 设置如下。

stores=file,http,swift

default_store=file

glance- cache.conf 定义镜像缓存 配置。
glance- scrubber.conf 定义镜像删除相关 配置。

policy.json是镜像服务的策略配置文件

1.5 •验证Glance服务

查看 当前运行的 Glance 服务。

[root@node-a etc]# systemctl status *glance*.service

glance-registry 系统后台运行的 Glance 注册服务进程,负责处理与镜像元数据相关的 RESTful 请求
OpenStack Queens 版本 开始将 glance-registry 服务集成到了 glance- api ,如果 glance- api 接收到与镜像元数据有关的请求,会直接操作 数据库。

1.6 •试用镜像服务的API

(1)请求一个admin项目作用域的令牌。

[root@node-a ~]# curl -i   -H "Content-Type: application/json"   -d '   \

{ "auth": {    

    "identity": {

        …

    },

    "scope": {

        …

    }

  }

}'   "http://localhost:5000/v3/auth/tokens"

(2)导出环境变量OS_TOKEN,并将其值设置为上述操作获取的令牌ID

(3)通过Images API v1获取当前镜像列表。

[root@node-a ~]# curl -s -H "X-Auth-Token: $OS_TOKEN"   http://localhost:9292/v1/images

{"versions": [{"status": "CURRENT", "id": "v2.9", "links": [{"href": "http://localhost:9292/v2/", "rel": "self"}]}, {"status": "SUPPORTED", "id": "v2.7", "links": [{"href": "http://localhost:9292/v2/", "rel": "self"}]},  … "links": [{"href": "http://localhost:9292/v2/", "rel": "self"}]}, {"status": "SUPPORTED", "id": "v2.0", "links": [{"href": "http://localhost:9292/v2/", "rel": "self"}]}]}

任务二  管理OpenStack镜像

2.1 虚拟机镜像的磁盘格式

2.2 •虚拟机镜像的容器格式

2.3 •镜像的状态

2.4 •镜像的访问权限

Public (公共的):可以被所有的项目使用。
Private (私有的):只能被镜像所有者所在的项目使用。
Shared (共享的):一个非共有的镜像可以共享给其他 项目。
Protected (受保护的) :镜像 不能被删除。

2.5 •镜像的元数据

镜像的 元数据 镜像 属性,提供关于由镜像服务所存储的虚拟磁盘的信息
元数据 作为与镜像数据关联的镜像记录的一部分由镜像服务存储
相关 OpenStack 组件和驱动通过镜像元数据与镜像服务交互。
元数据 定义 服务提供 了一个通用的 API 来自定义可用的键值对 元数据。

2.6 •命令行的镜像管理方法

建议 使用 openstack 命令替代传统的 glance 命令

1)查看镜像

Ø 查看 已有的镜像列表,查询结果包括镜像的 ID 和名称,以及状态。

openstack image list

Ø 查看 镜像详细 信息。

openstack image show 镜像名称或ID

2)创建镜像

openstack image create [选项] 镜像名称

3)更改镜像

Ø 更改镜像。

openstack image set  [选项镜像名称

Ø 取消 镜像 更改。

                             openstack image unset  [选项镜像名称

4)删除镜像

openstack image delete  <镜像名称或ID>

5)镜像与项目关联。

Ø 将镜像与项目 关联。

openstack image add project  [--project-domain 项目所属域镜像名或ID  项目名或ID

Ø 将镜像与项目解除 关联。

openstack image remove project  [--project-domain 项目所属域镜像名或ID  项目名或ID

2.7 ••查看镜像

使用命令行工具查看镜像。
加载用户的环境变量。

[root@node-a ~]# source keystonerc_demo

显示镜像列表。

[root@node-a ~(keystone_demo)]# openstack image list

+------------------------------------+-------+-----+

| ID                                           | Name   | Status |

+------------------------------------+-------+-----+

| 369d0e73-abb8-4a90-b835-6c627a0f47d1  | cirros    | active  |

| 37116975-33c9-4d3e-8551-0c83e4efe7ef   | fedora   | active  |

查看镜像的详细信息。

[root@node-a ~(keystone_demo)]# openstack image show fedora

 2.8 •创建镜像

加载 云管理员 admin 的环境脚本,以 admin 用户身份进行操作。

[root@node-a ~]# source keystonerc_admin

OpenStack 云上传一个 .qcow2 格式的 CentOS 7 镜像并进行注册。

[root@node-a ~(keystone_admin)]# openstack image create --disk-format qcow2 --container-format bare   --public --file ~/Downloads/CentOS-7-x86_64-GenericCloud.qcow2 centos7

2.9 •管理镜像

使用 命令行工具为镜像设置元数据
创建镜像的 openstack image create 命令或修改镜像的 openstack image set 命令中,通过 --property 选项以键值对的形式定义 元数据。
示例

 [root@node-a ~(keystone_admin)]# openstack image set --property architecture= x86_64 --property hypervisor_type=qemu fedora

2.10•转换镜像格式

使用 qemu-img 工具的 convert 命令将 镜像从一种格式转换为另一种格式
基本 语法格式如下。

qemu-img  convert  [-f 源格式] [-O 目标格式]  [-o 选项] 源文件路径 目标文件路径

示例

[root@node-a ~]# qemu-img convert -f raw -O qcow2 ~/Downloads/cirros-0.5.1-x86_64-disk.img ~/Downloads/cirros-0.5.1-x86_64-disk.qcow2

任务三  基于预制镜像定制OpenStack镜像

3.1 •什么是cloud-init

cloud- init 是一组 Python 脚本的集合,是一个能够定制云镜像的实用 工具。
通过 修改 / etc /cloud/ cloud.cfg 配置文件来 实现。
cloud- init 一般会被包含在用于启动虚拟机实例的镜像文件 中。
基于镜像 部署虚拟机实例, cloud- init 会随虚拟机实例的启动自动启动,对虚拟机实例进行自定义的初始配置
cloud- init 目前 支持 Ubuntu Fedora Debian RHEL CentOS 等主流的 Linux 操作系统发行版

3.2 •什么是实例快照

快照( Snapshots )是一种基于时间点的数据备份技术,能够记录某一个时刻的数据信息并将其保存,以便在需要时将数据恢复到之前时间点的 状态
OpenStack 中为虚拟机实例生成的快照抓取实例正在运行的磁盘的状态,其实是一个完整的镜像,由 Glance 镜像服务 管理。

3.3•对实例进行定制

1)登录实例。

[root@node-a ~]# ssh -i ~/.ssh/demo-key.pem centos@192.168.199.50

2)切换到root用户。

[root@cenos7-vm ~]$ sudo su -

3)执行passwd命令设置root用户的密码。

[root@cenos7-vm ~]# passwd

Changing password for user root.

New password:

Retype new password:

passwd: all authentication tokens updated successfully.

4)使用vi工具编辑/etc/ssh/sshd_config配置文件,将其中的PasswordAuthentication参数值设置为yes,然后保存该文件并退出编辑,重SSH服务。

5)查看CentOS的详细版本。

[root@cenos7-vm ~]# cat /etc/redhat-release

6)安装图形界面。

yum groupinstall "Server with GUI"

7)将时区修改为上海。

[root@cenos7-vm ~]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

cp: overwrite '/etc/localtime'? y

8)将系统语言修改为中文。

[root@cenos7-vm ~]# localectl  set-locale LANG=zh_CN.UTF8

9)设置系统默认启动图形界面。

[root@cenos7-vm ~]# systemctl set-default graphical.target

Removed symlink /etc/systemd/system/default.target.

Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/graphical.target.

3.4 •定制cloud-init初始化行为

编辑 实例 CentOS 7 / etc /cloud/ cloud.cfg 配置文件。
Ø disable_root 参数的值设为 0 ,让 root 账户能够直接登录实例(默认不允许登录)
Ø ssh_pwauth 参数的值设为 1 ,以启用 SSH 密码登录(默认只能通过私钥 SSH 登录)
启系统。

[root@cenos7-vm ~]# reboot

3.5•将实例快照转换成镜像

获取 实例快照的文件路径,可通过查看其“ ID” 值确定 具体的文件路径。

[root@node-a ~(keystone_demo)]# openstack image list

+----------------------------------+---------------+--------+

| ID                                         | Name             | Status    |

+----------------------------------+---------------+--------+

| 885aeabf-3753-43c0-865f-85d08083a1f1 | centos7            | active    |

| c9e65002-07fc-4ed8-92f5-8c0ced750332 | centos7-gui-snap  | active    |

| 369d0e73-abb8-4a90-b835-6c627a0f47d1 | cirros              | active   |

| 37116975-33c9-4d3e-8551-0c83e4efe7ef | fedora              | active   |

执行 openstack image create 命令创建新的镜像。

[root@node-a ~(keystone_demo)]# openstack image create centos7-gui --file /var/lib/ glance/images/c9e65002-07fc-4ed8-92f5-8c0ced750332 --disk-format qcow2 --container- format bare

任务四  使用自动化工具制作OpenStack镜像

4.1 •Diskimage-builder工具

Diskimage -builder 简称 DIB ,是 OpenStack 的官方 项目。
DIB 主要 用于构建适用于 OpenStack 平台的操作系统 镜像。
Diskimage -builder 的镜像生成 原理

1)将最初启动虚拟机实例时安装操作系统完成后的镜像保存为基础镜像。

2)将该基础镜像挂载到本地。

3chroot到根分区。

4)根据不同的定制需要增加不同的模块。

5)安装完成后保存为特定格式的镜像文件

使用 Diskimage -builder 首次制作某操作系统镜像时需要从网上下载该操作系统的基础镜像文件,后面再制作同一版本的镜像时,可直接 使用镜像 缓存 文件。

4.2 •其他自动化镜像生成工具

Oz :自动化生成虚拟机镜像文件的命令行工具
Packer :从单个源配置构建多种平台的虚拟机镜像的工具。
image-bootstrap :生成可启动的虚拟机镜像的命令行 工具。
imagefactory :可以自动构建、转换和上传镜像到不同的云提供商的新型 工具。
KIWI :操作系统镜像构建器,支持多种 Linux 硬件平台、虚拟化和云系统的操作系统镜像构建。
virt -builder :快速构建虚拟机镜像的工具

4.3 •安装Diskimage-builder

1)安装epel扩展源。

yum -y install epel-release

2)安装pip工具。

yum -y install python-pip

3)安装支持环境。

yum -y install qemu-img kpartx

4)升级pip工具。

pip install --upgrade "pip < 20.0”

5)安装Diskimage-builder

pip install  "diskimage-builder==2.2.0"

4.4 •熟悉Diskimage-builder的用法

disk-image-create  [选项]…[元素]…

元素 Element )是指用来组织制作镜像的元素。元素决定镜像中包含的内容,例如创建用户、安装软件包、进行某种 配置。元素 还可以为 disk-image-create 命令的运行提供环境变量 。有许多 针对具体元素的环境变量
简单的示例
生成 一个通用的、可启动的最新发行版 Ubuntu 操作系统镜像。

disk-image-create ubuntu vm

进一步 定制可通过执行以下命令设置环境变量来实现。

export ELEMENTS_PATH=~/source/tripleo-image-elements/elements

disk-image-create -a amd64 -o fedora-amd64-heat-cfntools vm fedora heat-cfntools

4.5 •使用Diskimage-builder自动构建Ubuntu操作系统镜像

设置 相关的环境变量。

[root@localhost ~]# export DIB_DEV_USER_USERNAME=ubuntu      #初始用户名

[root@localhost ~]# export DIB_DEV_USER_PASSWORD=ubuntu      #初始用户密码

[root@localhost ~]# export DIB_DEV_USER_PWDLESS_SUDO=YES   #为用户启用无密码sudo

[root@localhost ~]# export DIB_CLOUD_INIT_DATASOURCES="ConfigDrive, OpenStack                                         

   #cloud-init的源是ConfigDriveOpenStack

构建 镜像。

[root@localhost ~]# disk-image-create -a amd64 -t qcow2 -o ubuntu.qcow2 ubuntu vm  cloud-init-datasources devuser

任务五  手动制作OpenStack镜像

5.1 •手动制作镜像

可以 使用 KVM ,或者使用 GUI 桌面虚拟化 工具。
创建新的虚拟机镜像时,应连接 Hypervisor 的图形界面控制台,用作虚拟机实例的显示 界面。
KVM 提供的图形界面控制台可以通过虚拟网络计算 VNC )协议或更新的独立计算环境简单协议 SPICE )访问
使用 KVM 平台制作 OpenStack 镜像实际上是一种系统镜像文件格式的转换,将制作好的系统镜像文件转换为原始格式的文件。

5.2 •KVM虚拟化工具

KVM 的基本架构

Libvirt 是一个软件集合,是一套为方便管理平台虚拟化技术而设计的开源代码的应用程序接口、守护进程和管理工具
Libvirt 不仅 提供了对虚拟机的管理,也提供了对虚拟网络和存储的管理
Libvirt 是目前使用非常广的虚拟机管理程序 接口。

5.3 •KVM虚拟磁盘(镜像)文件格式

. raw :原始的格式 ,直接 将文件系统的存储单元分配给虚拟机使用,采取直读直写的策略
. qcow2 QEMU 引入的镜像文件格式,也是目前 KVM 默认的格式
. qed .qcow2 的一种改型,存储定位查询方式和数据块大小和 .qcow2 一样

★★如果要使用虚拟机快照,则选择.qcow2格式

5.4 •VirtIO驱动程序与Cloudbase-init

VirtIO 其实就是一个运行于 Hypervisor 之上的 API ,虚拟化环境中的 I/O 操作通过 VirtIO Hypervisor 通信,可以具有更好的性能
Cloudbase-init Windows 操作系统和其他系统的云初始化 程序。 其作用与 Linux 操作系统中的 cloud- init 一样,也是一个开源的 Python 项目
Cloudbase-init 主要包括两个部分
Ø 服务 Service
Ø 插件 Plugin

5.5 •部署KVM

检查是否支持 CPU 虚拟化。

grep -E 'svm|vmx' /proc/cpuinfo

安装 KVM 软件包。

yum install qemu-kvm libvirt virt-install virt-manager virt-viewer

便于实验,应关闭该 KVM 主机的防火墙和 SELinux 功能。

 

相关文章:

项目五 OpenStack镜像管理与制作

任务一 理解OpenStack镜像服务 1.1 •什么是镜像 • 镜像通常 是指一系列文件或一个磁盘驱动器的精确副本 。 • 虚拟机 所使用的虚拟磁盘&#xff0c; 实际上是 一种特殊格式的镜像文件 。 • 云 环境下尤其需要 镜像。 • 镜像 就是一个模板&#xff0c;类似于 VMware 的虚拟…...

LabVIEW回热系统热经济性分析及故障诊断

开发了一种利用LabVIEW软件的电厂回热系统热经济性分析和故障诊断系统。该系统针对火电厂回热加热器进行优化&#xff0c;通过实时数据监控与分析&#xff0c;有效提高机组的经济性和安全性&#xff0c;同时降低能耗和维护成本。系统的实施大幅提升了火电厂运行的效率和可靠性&…...

设计模式-迭代器模式

目录 一:基本介绍 二:原理说明 三:案例说明 四:优点 五:缺点 一:基本介绍 1)属于行为模式 2)如果我们的集合元素是用不同的方式实现的,有数组,还有java的集合类,或者还有其他方式,当客户 端要遍历这些集合元素的时候就要使用多种遍历方式,而且还会暴露元素的内部结构,可以…...

UV胶带和UV胶水的应用场景有哪些不同吗?

UV胶带和UV胶水的应用场景有哪些不同吗? UV胶带和UV胶水的应用场景确实存在不同之处&#xff0c;以下是详细的比较和归纳&#xff1a; 一&#xff1a;按使用场景来看&#xff1a; UV胶带的应用场景&#xff1a; 包装行业&#xff1a;UV胶带在包装行业中常用于食品包装、药…...

监控员工上网软件有哪些|4款好用的员工上网行为管理软件推荐

在当今数字化办公环境中&#xff0c;确保网络安全、提升工作效率、以及规范员工上网行为成为企业管理的重要组成部分。 为此&#xff0c;一套高效的员工上网行为管理软件显得尤为关键。 本文将为您推荐五款市场上广受好评的员工上网行为管理软件&#xff0c;帮助您有效监控与管…...

【IPython的使用技巧】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…...

最新AI智能聊天对话问答系统源码(详细图文搭建部署教程)+AI绘画系统(Midjourney),DALL-E3文生图,TTS语音识别输入,文档分析

一、文章前言 随着人工智能技术的持续进步&#xff0c;AI绘画已经发展成为一个日益成熟的领域。越来越多的人开始尝试使用AI绘画软件来创作艺术作品。尽管这些AI绘画软件对绘画领域产生了显著影响&#xff0c;但它们并不会完全取代画师。与传统手绘不同&#xff0c;AI绘画可以…...

项目四 OpenStack身份管理

任务一 理解身份服务 1.1 •Keystone的基本概念 • 认证 &#xff08; Authentication &#xff09; —— 确认 用户身份的过程&#xff0c;又称身份验证 。 • 凭证 &#xff08; Credentials &#xff09; —— 又 称凭据&#xff0c;是用于确认用户身份的数据 。 • 令牌 …...

【后端】websocket学习笔记

文章目录 1. 消息推送常见方式1.1 轮询 VS 长轮询1.2 SSE&#xff08;server-sent event)服务器发送事件 2. websocket介绍2.1 介绍2.2 原理2.3 websoket API2.3.1 客户端【浏览器】API2.3.2 服务端API 3. 代码实现3.1 流程分析3.2 pom依赖3.3 配置类3.4 消息格式3.5 消息类 4.…...

DataWhale - 吃瓜教程学习笔记(一)

学习视频&#xff1a;第1章-绪论_哔哩哔哩_bilibili 西瓜书对应章节&#xff1a; 第一章 & 第二章 文章目录 机器学习三观What&#xff1a;什么是机器学习&#xff1f;Why: 为什么要学机器学习&#xff1f;1. 机器学习理论研究2. 机器学习系统开发3. 机器学习算法迁移 &…...

Attention Is All You Need论文地址

论文地址 点击即可...

如何优雅的一键下载OpenHarmony活跃分支代码?请关注【itopen: ohos_download】

itopen组织&#xff1a;1、提供OpenHarmony优雅实用的小工具2、手把手适配riscv qemu linux的三方库移植3、未来计划riscv qemu ohos的三方库移植 小程序开发4、一切拥抱开源&#xff0c;拥抱国产化 一、概述 为方便大家每次下载OpenHarmony不同分支/tag代码&#xff0c…...

torch.topk用法

torch.topk用法 介绍使用示例 介绍 官网介绍&#xff1a;https://pytorch.org/docs/stable/generated/torch.topk.html 在指定维度选取k个最大&#xff08;最小&#xff09;的值。 使用示例 values torch.tensor([[2, 1, 3], [1, 2, 3]]) # values # tensor([[2, 1, 3], #…...

终极版本的Typora上传到博客园和csdn

激活插件 下载网址是这个&#xff1a; https://codeload.github.com/obgnail/typora_plugin/zip/refs/tags/1.9.4 解压之后这样的&#xff1a; 解压之后将plugin&#xff0c;复制到自己的安装目录下的resources 点击安装即可&#xff1a; 更改配置文件 "dependencies&q…...

洛谷:P5707【深基2.例12】上学迟到

1. 题目链接 https://www.luogu.com.cn/problem/P5707 【深基2.例12】上学迟到 2. 题目描述 学校和y的家距离s米&#xff0c;s以v的速度去学校&#xff0c;8点之前到&#xff0c;y出门前要打扫10分钟卫生&#xff0c;求s最晚的出门时间 输入&#xff1a;两个正整数路程s&…...

数据治理:数据提取过程中的合规性与安全性

数据治理&#xff1a;数据提取过程中的合规性与安全性 随着数字化时代的到来&#xff0c;数据已经成为企业运营和决策的核心驱动力。然而&#xff0c;在数据提取的过程中&#xff0c;确保数据的合规性和安全性成为了企业面临的重要挑战。数据治理作为一种系统的方法&#xff0…...

24计算机应届生的活路是什么

不够大胆❗ 很多小伙伴在找工作时觉得自己没有竞争力&#xff0c;很没有自信&#xff0c;以至于很害怕找工作面试&#xff0c;被人否定的感觉很不好受。 其实很多工作并没有想象中的高大上&#xff0c;不要害怕&#xff0c;计算机就业的方向是真的广&#xff0c;不要走窄了&…...

HTML页面布局-使用div示例

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> <body><!--text-align:center 文字水平居中line-height&#xff1a;200px; 文字垂直居中,行高设置跟高…...

怎么把webp文件转换为jpg?快来试试这四种转换方法!

怎么把webp文件转换为jpg&#xff1f;Webp是一种不常见的图片格式&#xff0c;这种格式在使用过程中有很多缺点&#xff0c;首先它的浏览器兼容性不是很强&#xff0c;这就代表大家无法随意进行网络传输&#xff0c;可能需要准备特定的操作才能进行&#xff0c;然后编辑webp的工…...

计算机网络(7) 错误检测

一.校验和 使用补码计算校验和是一种常见的错误检测方法&#xff0c;应用于网络协议如IP和TCP。补码是二进制数的一种表示方法&#xff0c;可以有效地处理符号位和进位。下面是如何利用补码计算校验和的详细步骤和算数例子。 ### 计算步骤 1. **将数据分块**&#xff1a;将数…...

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站&#xff0c;会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后&#xff0c;网站没有变化的情况。 不熟悉siteground主机的新手&#xff0c;遇到这个问题&#xff0c;就很抓狂&#xff0c;明明是哪都没操作错误&#x…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

unix/linux,sudo,其发展历程详细时间线、由来、历史背景

sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

基于Java+MySQL实现(GUI)客户管理系统

客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息&#xff0c;对客户进行统一管理&#xff0c;可以把所有客户信息录入系统&#xff0c;进行维护和统计功能。可通过文件的方式保存相关录入数据&#xff0c;对…...

IP如何挑?2025年海外专线IP如何购买?

你花了时间和预算买了IP&#xff0c;结果IP质量不佳&#xff0c;项目效率低下不说&#xff0c;还可能带来莫名的网络问题&#xff0c;是不是太闹心了&#xff1f;尤其是在面对海外专线IP时&#xff0c;到底怎么才能买到适合自己的呢&#xff1f;所以&#xff0c;挑IP绝对是个技…...

快刀集(1): 一刀斩断视频片头广告

一刀流&#xff1a;用一个简单脚本&#xff0c;秒杀视频片头广告&#xff0c;还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农&#xff0c;平时写代码之余看看电影、补补片&#xff0c;是再正常不过的事。 电影嘛&#xff0c;要沉浸&#xff0c;…...

react菜单,动态绑定点击事件,菜单分离出去单独的js文件,Ant框架

1、菜单文件treeTop.js // 顶部菜单 import { AppstoreOutlined, SettingOutlined } from ant-design/icons; // 定义菜单项数据 const treeTop [{label: Docker管理,key: 1,icon: <AppstoreOutlined />,url:"/docker/index"},{label: 权限管理,key: 2,icon:…...

CSS 工具对比:UnoCSS vs Tailwind CSS,谁是你的菜?

在现代前端开发中&#xff0c;Utility-First (功能优先) CSS 框架已经成为主流。其中&#xff0c;Tailwind CSS 无疑是市场的领导者和标杆。然而&#xff0c;一个名为 UnoCSS 的新星正以其惊人的性能和极致的灵活性迅速崛起。 这篇文章将深入探讨这两款工具的核心理念、技术差…...

OPENCV图形计算面积、弧长API讲解(1)

一.OPENCV图形面积、弧长计算的API介绍 之前我们已经把图形轮廓的检测、画框等功能讲解了一遍。那今天我们主要结合轮廓检测的API去计算图形的面积&#xff0c;这些面积可以是矩形、圆形等等。图形面积计算和弧长计算常用于车辆识别、桥梁识别等重要功能&#xff0c;常用的API…...