【云计算】OpenStack单节点allinone部署

OpenStack单节点all-in-one部署

    • 工具准备
    • 环境搭建
      • 创建centos7虚拟机
      • ssh连接
    • 安装前的设置
      • 禁用防火墙
      • 禁用 NetworkManager服务
      • 启用 network 服务
      • 修改主机名以及映射
      • 时间同步
    • 安装openstcak
    • 项目配置
      • 主机原网络配置
      • 修改网络配置
      • 使配置生效
      • 删除项目默认的路由和网络
      • 创建外网ext-net
      • 创建内网int-net
      • 创建路由R1
    • 运行云主机
      • 镜像上传
      • 镜像创建
      • 创建实例
    • 编辑安全组规则
      • 添加ALL ICMP规则
      • 添加SSH规则
    • 连接云主机
      • 获取浮动IP
      • 绑定浮动IP
      • 查看网络拓扑
    • 测试
      • ping测试
      • ssh测试
    • 云硬盘管理
      • 创建卷
      • 连接卷
      • 查看
    • 云存储管理
      • 创建容器
      • 容器管理


工具准备

VMware Workstation Pro 16
CentOS-7-x86_64-DVD-1804.iso
SecureCRT、SecureFX
cirros-0.4.0-x86_64-disk.img

环境搭建

  • 创建centos7虚拟机

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

这里一定内存不能少于8G,不然后面安装容易出问题!!还有虚拟化一定要勾上!!!
在这里插入图片描述

在这里插入图片描述

启动虚拟机centos7
在这里插入图片描述

选中文,你要英文好选英语也行。
在这里插入图片描述

选配置分区,可以不配,可以不配!!!不影响!!!我同学没分区照样能做!!!
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

可以不分区,选默认也一样,主要我电脑存储空间本来就不够,分区分了个寂寞!!
ens33要打开,后面下载openstack要网的!!
在这里插入图片描述

划重点:最小安装,分区可以不分选默认,禁用Kdump,ens33必须打开!!
在这里插入图片描述

设置root密码,待会ssh要用。
在这里插入图片描述

  • ssh连接

安装完成后,登录,查ip地址
在这里插入图片描述

使用SecureCRT 连接
在这里插入图片描述

ssh成功连上
在这里插入图片描述

测下网络,能访问互联网。
在这里插入图片描述

安装前的设置

  • 禁用防火墙

Last login: Tue Apr 23 03:22:49 2024 from 192.168.196.1
[root@localhost ~]#  systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@localhost ~]#  vi /etc/selinux/config# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted~
~
"/etc/selinux/config" 13L, 545C written

在这里插入图片描述

重启

[root@localhost ~]# reboot
  • 禁用 NetworkManager服务

Last login: Tue Apr 23 07:36:39 2024 from 192.168.196.1
[root@localhost ~]# systemctl disable NetworkManager
Removed symlink /etc/systemd/system/multi-user.target.wants/NetworkManager.service.
Removed symlink /etc/systemd/system/dbus-org.freedesktop.NetworkManager.service.
Removed symlink /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service.
[root@localhost ~]# systemctl stop NetworkManager
  • 启用 network 服务

[root@localhost ~]# systemctl enable network
network.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig network on
[root@localhost ~]# systemctl start network
  • 修改主机名以及映射

[root@localhost ~]# hostnamectl set-hostname node-a
[root@localhost ~]# vi /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.196.44   node-a node-a.localdomain
~
~
"/etc/hosts" 3L, 201C written
[root@localhost ~]# ping node-a
PING node-a (192.168.196.44) 56(84) bytes of data.
64 bytes from node-a (192.168.196.44): icmp_seq=1 ttl=64 time=0.020 ms
64 bytes from node-a (192.168.196.44): icmp_seq=2 ttl=64 time=0.046 ms
^Z
[1]+  已停止               ping node-a
  • 时间同步

[root@localhost ~]# yum install -y chrony
已加载插件:fastestmirror
Determining fastest mirrors* base: ftp.sjtu.edu.cn* extras: mirrors.bfsu.edu.cn* updates: mirrors.ustc.edu.cn
base                                                                                                                       | 3.6 kB  00:00:00     
extras                                                                                                                     | 2.9 kB  00:00:00     
updates                                                                                                                    | 2.9 kB  00:00:00     
(1/4): base/7/x86_64/group_gz                                                                                              | 153 kB  00:00:00     
(2/4): extras/7/x86_64/primary_db                                                                                          | 253 kB  00:00:00     
(3/4): base/7/x86_64/primary_db                                                                                            | 6.1 MB  00:00:05     
(4/4): updates/7/x86_64/primary_db                                                                                         |  26 MB  00:00:24     
正在解决依赖关系
--> 正在检查事务
---> 软件包 chrony.x86_64.0.3.4-1.el7 将被 安装
--> 正在处理依赖关系 libseccomp.so.2()(64bit),它被软件包 chrony-3.4-1.el7.x86_64 需要
--> 正在检查事务
---> 软件包 libseccomp.x86_64.0.2.3.1-4.el7 将被 安装
--> 解决依赖关系完成依赖关系解决==================================================================================================================================================Package                              架构                             版本                                  源                              大小
==================================================================================================================================================
正在安装:chrony                               x86_64                           3.4-1.el7                             base                           251 k
为依赖而安装:libseccomp                           x86_64                           2.3.1-4.el7                           base                            56 k事务概要
==================================================================================================================================================
安装  1 软件包 (+1 依赖软件包)总下载量:307 k
安装大小:788 k
Downloading packages:
警告:/var/cache/yum/x86_64/7/base/packages/libseccomp-2.3.1-4.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEYkB  00:00:42 ETA 
libseccomp-2.3.1-4.el7.x86_64.rpm 的公钥尚未安装
(1/2): libseccomp-2.3.1-4.el7.x86_64.rpm                                                                                   |  56 kB  00:00:14     
(2/2): chrony-3.4-1.el7.x86_64.rpm                                                                                         | 251 kB  00:00:35     
--------------------------------------------------------------------------------------------------------------------------------------------------
总计                                                                                                              8.7 kB/s | 307 kB  00:00:35     
从 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 检索密钥
导入 GPG key 0xF4A80EB5:用户ID     : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"指纹       : 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5软件包     : centos-release-7-5.1804.el7.centos.x86_64 (@anaconda)来自       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction正在安装    : libseccomp-2.3.1-4.el7.x86_64                                                                                                 1/2 正在安装    : chrony-3.4-1.el7.x86_64                                                                                                       2/2 验证中      : libseccomp-2.3.1-4.el7.x86_64                                                                                                 1/2 验证中      : chrony-3.4-1.el7.x86_64                                                                                                       2/2 已安装:chrony.x86_64 0:3.4-1.el7                                                                                                                       作为依赖被安装:libseccomp.x86_64 0:2.3.1-4.el7                                                                                                                 完毕!
[root@localhost ~]# vi /etc/chrony.conf
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst# Record the rate at which the system clock gains/losses time.
driftfile /var/lib/chrony/drift# Allow the system clock to be stepped in the first three updates
# if its offset is larger than 1 second.
makestep 1.0 3
server ntp1.aliyun.com iburst# Enable kernel synchronization of the real-time clock (RTC).
rtcsync# Enable hardware timestamping on all interfaces that support it.
#hwtimestamp *# Increase the minimum number of selectable sources required to adjust
# the system clock.
#minsources 2# Allow NTP client access from local network.
"/etc/chrony.conf" 39L, 1138C written
[root@localhost ~]# 

在这里插入图片描述

安装openstcak

[root@localhost ~]# yum -y install centos-release-openstack-train
(略。。。。。。)
已安装:centos-release-openstack-train.noarch 0:1-1.el7.centos                                                                                          作为依赖被安装:centos-release-ceph-nautilus.noarch 0:1.2-2.el7.centos                  centos-release-nfs-ganesha28.noarch 0:1.0-3.el7.centos                 centos-release-qemu-ev.noarch 0:1.0-4.el7.centos                        centos-release-storage-common.noarch 0:2-2.el7.centos                  centos-release-virt-common.noarch 0:1-1.el7.centos                     作为依赖被升级:centos-release.x86_64 0:7-9.2009.1.el7.centos                                                                                                   完毕!
[root@localhost ~]# yum -y install openstack-packstack
(略。。。。。。)rubygem-io-console.x86_64 0:0.4.2-39.el7_9                           rubygem-json.x86_64 0:1.7.7-39.el7_9                                      rubygem-pathspec.noarch 0:0.2.1-3.el7                                rubygem-psych.x86_64 0:2.0.0-39.el7_9                                     rubygem-rdoc.noarch 0:4.0.0-39.el7_9                                 rubygem-rgen.noarch 0:0.6.6-2.el7                                         rubygems.noarch 0:2.0.14.1-39.el7_9                                  yaml-cpp.x86_64 0:0.5.1-6.el7                                             作为依赖被升级:libselinux.x86_64 0:2.5-15.el7   libselinux-python.x86_64 0:2.5-15.el7   libselinux-utils.x86_64 0:2.5-15.el7   libsepol.x86_64 0:2.5-10.el7  完毕!

挂起虚拟机,拍快照,因为下一步要装大半小时,防止出意外。。。

Last login: Tue Apr 23 14:05:26 2024 from 192.168.196.1
[root@node-a ~]#  packstack --allinone
Welcome to the Packstack setup utilityThe installation log file is available at: /var/tmp/packstack/20240423-141738-Yav4Yc/openstack-setup.log
Packstack changed given value  to required value /root/.ssh/id_rsa.pubInstalling:
Clean Up                                             [ DONE ]
Discovering ip protocol version                      [ DONE ]
Setting up ssh keys                                  [ DONE ]
Preparing servers                                    [ DONE ]
Pre installing Puppet and discovering hosts' details [ DONE ]
Preparing pre-install entries                        [ DONE ]

等了半个多小时,卡住了好像。。。不用CRT了。。。直接虚拟机里面执行。。。
在这里插入图片描述
等了快一个小时了,看到successfully就是成功了。

Last failed login: Tue Apr 23 14:53:18 CEST 2024 from 192.168.196.1 on ssh:notty
There was 1 failed login attempt since the last successful login.
Last login: Tue Apr 23 14:20:06 2024
[root@node-a ~]# nova-manage --version
20.6.0

ping连通性测试
在这里插入图片描述

用户admin和demo的登录的密码

[root@node-a ~]# source keystonerc_admin
[root@node-a ~(keystone_admin)]# cat keystonerc_admin
unset OS_SERVICE_TOKENexport OS_USERNAME=adminexport OS_PASSWORD='fa6313c270674503'export OS_REGION_NAME=RegionOneexport OS_AUTH_URL=http://192.168.196.44:5000/v3export PS1='[\u@\h \W(keystone_admin)]\$ 'export OS_PROJECT_NAME=admin
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_IDENTITY_API_VERSION=3[root@node-a ~(keystone_admin)]# 
[root@node-a ~(keystone_admin)]# source keystonerc_demo
[root@node-a ~(keystone_demo)]# cat keystonerc_demo
unset OS_SERVICE_TOKEN
export OS_USERNAME=demo
export OS_PASSWORD='1a6a9ec34331441f'
export PS1='[\u@\h \W(keystone_demo)]\$ '
export OS_AUTH_URL=http://192.168.196.44:5000/v3export OS_PROJECT_NAME=demo
export OS_USER_DOMAIN_NAME=Default
export OS_PROJECT_DOMAIN_NAME=Default
export OS_IDENTITY_API_VERSION=3

浏览器访问http://192.168.196.44并登录
在这里插入图片描述

在这里插入图片描述

项目配置

  • 主机原网络配置

br-ex,是外部网桥
br-int,是集成网桥

[root@node-a ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:2e:5a:9a brd ff:ff:ff:ff:ff:ffinet 192.168.196.44/24 brd 192.168.196.255 scope global dynamic ens33valid_lft 1779sec preferred_lft 1779secinet6 fe80::20c:29ff:fe2e:5a9a/64 scope link valid_lft forever preferred_lft forever
3: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000link/ether d6:e3:e2:8c:e5:86 brd ff:ff:ff:ff:ff:ff
4: br-ex: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000link/ether 2a:91:47:32:af:4e brd ff:ff:ff:ff:ff:ffinet 172.24.4.1/24 scope global br-exvalid_lft forever preferred_lft foreverinet6 fe80::2891:47ff:fe32:af4e/64 scope link valid_lft forever preferred_lft forever
5: br-int: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000link/ether 36:71:1c:85:37:40 brd ff:ff:ff:ff:ff:ff
  • 修改网络配置

[root@node-a ~]#  vi ifcfg-ens33
DEVICE=ens33
TYPE=OVSPort
DEVICETYPE=ovs
OVS_BRIDGE=br-ex
ONBOOT=yes
~
"ifcfg-ens33" 5L, 69C written
[root@node-a ~]# vi ifcfg-br-ex
DEVICE=br-ex
DEVICETYPE=ovs
TYPE=OVSBridge
BOOTPROTO=static
IPADDR=192.168.196.44
NETMASK=255.255.255.0
GATEWAY=192.168.196.2
DNS1=192.168.196.2
ONBOOT=yes
~
"ifcfg-br-ex" 9L, 156C written
[root@node-a ~]#
  • 使配置生效

[root@node-a ~]# cp ifcfg-* /etc/sysconfig/network-scripts/
cp:是否覆盖"/etc/sysconfig/network-scripts/ifcfg-br-ex"? y
cp:是否覆盖"/etc/sysconfig/network-scripts/ifcfg-ens33"? y
[root@node-a ~]# systemctl restart network

查看ip

网桥br-ex获得原ens33网卡的IP配置,而ens33作为该网桥上的一个端口后,可以没有IP地址。

[root@node-a ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master ovs-system state UP group default qlen 1000link/ether 00:0c:29:2e:5a:9a brd ff:ff:ff:ff:ff:ffinet6 fe80::20c:29ff:fe2e:5a9a/64 scope link valid_lft forever preferred_lft forever
3: ovs-system: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000link/ether d6:e3:e2:8c:e5:86 brd ff:ff:ff:ff:ff:ff
5: br-int: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000link/ether 36:71:1c:85:37:40 brd ff:ff:ff:ff:ff:ff
7: br-ex: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000link/ether 00:0c:29:2e:5a:9a brd ff:ff:ff:ff:ff:ffinet 192.168.196.44/24 brd 192.168.196.255 scope global br-exvalid_lft forever preferred_lft foreverinet6 fe80::1c59:64ff:fe70:74e/64 scope link valid_lft 
  • 删除项目默认的路由和网络

进入管理员的分支下,先删路由,后删网络!!!

在这里插入图片描述
在这里插入图片描述

  • 创建外网ext-net

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 创建内网int-net

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 创建路由R1

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

运行云主机

  • 镜像上传

SecureFX上传 cirros-0.4.0-x86_64-disk.img 到centos7
在这里插入图片描述
/root目录下查看上传的img文件

Last login: Tue Apr 23 14:53:29 2024 from 192.168.196.1
[root@node-a ~]# ll
总用量 12484
-rw-------. 1 root root     1574 423 03:18 anaconda-ks.cfg
-rw-r--r--  1 root root 12716032 424 16:12 cirros-0.4.0-x86_64-disk.img
-rw-------  1 root root      374 423 14:26 keystonerc_admin
-rw-------  1 root root      319 423 14:26 keystonerc_demo
-rw-------  1 root root    51772 423 14:20 packstack-answers-20240423-142037.txt
  • 镜像创建

镜像上传到 Glance

[root@node-a ~]# source keystonerc_admin
[root@node-a ~(keystone_admin)]# glance image-create --name cirros001 --disk-format qcow2 --container-format bare --visibility=public < cirros-0.4.0-x86_64-disk.img
+------------------+----------------------------------------------------------------------------------+
| Property         | Value                                                                            |
+------------------+----------------------------------------------------------------------------------+
| checksum         | 443b7623e27ecf03dc9e01ee93f67afe                                                 |
| container_format | bare                                                                             |
| created_at       | 2024-04-25T03:02:02Z                                                             |
| disk_format      | qcow2                                                                            |
| id               | 4461e269-6414-4471-b9d7-a1cc8b19396d                                             |
| min_disk         | 0                                                                                |
| min_ram          | 0                                                                                |
| name             | cirros001                                                                        |
| os_hash_algo     | sha512                                                                           |
| os_hash_value    | 6513f21e44aa3da349f248188a44bc304a3653a04122d8fb4535423c8e1d14cd6a153f735bb0982e |
|                  | 2161b5b5186106570c17a9e58b64dd39390617cd5a350f78                                 |
| os_hidden        | False                                                                            |
| owner            | 13aeda797d4f4be3baa99a7d7414f6c9                                                 |
| protected        | False                                                                            |
| size             | 12716032                                                                         |
| status           | active                                                                           |
| tags             | []                                                                               |
| updated_at       | 2024-04-25T03:02:02Z                                                             |
| virtual_size     | Not available                                                                    |
| visibility       | public                                                                           |
+------------------+----------------------------------------------------------------------------------+

查看新建的镜像

[root@node-a ~(keystone_admin)]# glance image-list
+--------------------------------------+-----------+
| ID                                   | Name      |
+--------------------------------------+-----------+
| 8f054c85-6b1e-4689-8197-e4c32820c6c8 | cirros    |
| 4461e269-6414-4471-b9d7-a1cc8b19396d | cirros001 |
+--------------------------------------+-----------+
[root@node-a ~(keystone_admin)]# 

在项目的分支下,能看到刚刚新建的镜像。
在这里插入图片描述

  • 创建实例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

云主机正在创建。。。
在这里插入图片描述
在这里插入图片描述
云主机启动完成,查看控制台。。。
在这里插入图片描述

编辑安全组规则

在这里插入图片描述

  • 添加ALL ICMP规则

在这里插入图片描述

  • 添加SSH规则

在这里插入图片描述
在这里插入图片描述

连接云主机

  • 获取浮动IP

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 绑定浮动IP

在这里插入图片描述
在这里插入图片描述

  • 查看网络拓扑

在这里插入图片描述

测试

  • ping测试

cirros001 => 百度www.baidu.com【√】
cirros001 => centos7 192.168.196.44【√】
cirros001 => 网关192.168.196.2【√】
cirros001 => 物理机win10 192.168.196.1【×】
物理机win10 => cirros001 192.168.196.20【×】
在这里插入图片描述

等多一会,再次尝试ping,可以用Wireshare抓包观察。

cirros001能ping网关196.2物理机196.1,也能访问互联网,如下:
在这里插入图片描述

win10也能ping通cirros001绑定的浮动ip192.168.196.20
在这里插入图片描述

注:如果win10能ping云主机cirros001,云主机cirros001却无法ping通物理机win10,把物理机win10的防火墙关掉!!

抓包验证
在这里插入图片描述
在这里插入图片描述

云主机cirros001的ip地址为10.10.10.44,抓包时真正通信的是其绑定的浮动ip192.168.196.20

  • ssh测试

reboot重启云主机
在这里插入图片描述

用户名cirros密码gocubsgo
在这里插入图片描述

SecureCRT连接成功
在这里插入图片描述

云硬盘管理

  • 创建卷

在这里插入图片描述

  • 连接卷

在这里插入图片描述

在这里插入图片描述

  • 查看

在这里插入图片描述

云存储管理

  • 创建容器

在这里插入图片描述

  • 容器管理

  1. 创建目录
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  2. 上传文件
    在这里插入图片描述
    在这里插入图片描述

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

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

相关文章

界面控件DevExpress v24.2.3全新发布——正式支持.NET 9

DevExpress拥有.NET开发需要的所有平台控件&#xff0c;包含600多个UI控件、报表平台、DevExpress Dashboard eXpressApp 框架、适用于 Visual Studio的CodeRush等一系列辅助工具。 屡获大奖的软件开发平台DevExpress 近期重要版本v24.2已正式发布&#xff0c;该版本拥有众多新…

Three.js资源-模型下载网站

在使用 Three.js 进行 3D 开发时&#xff0c;拥有丰富的模型资源库可以大大提升开发效率和作品质量。以下是一些推荐的 Three.js 模型下载网站&#xff0c;它们提供了各种类型的 3D 模型&#xff0c;适合不同项目需求。无论你是需要逼真的建筑模型&#xff0c;还是简单的几何体…

(三)PyQT5+QGIS+python使用经验——解决各版本不兼容问题

一、问题描述 基础环境&#xff1a;Windows10&#xff08;64&#xff09; PyCharm2024 QGIS 3.22。 目的&#xff1a;解决之前python版本多&#xff0c;pyqt5以及QT Designer交互使用存在环境变量冲突矛盾&#xff0c;以及QGIS安装时自带python、pyqt5等问题。 尤其是在QT …

C++ webrtc开发(非原生开发,linux上使用libdatachannel库)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、libdatachannel库的下载和build二、开始使用 1.2.引入库3.开始使用 总结 前言 使用c开发webrtc在互联网上留下的资料甚少&#xff0c;经过我一段时间的探…

SpringBoot 手动实现动态切换数据源 DynamicSource (中)

大家好&#xff0c;我是此林。 SpringBoot 手动实现动态切换数据源 DynamicSource &#xff08;上&#xff09;-CSDN博客 在上一篇博客中&#xff0c;我带大家手动实现了一个简易版的数据源切换实现&#xff0c;方便大家理解数据源切换的原理。今天我们来介绍一个开源的数据源…

上海艾一公司-运维工程师知识点备战

1.AD域控&#xff08;ActionDirectory活动目录&#xff09; ad域的作用&#xff1a;批量管理主机和用户&#xff08;所以数量要多用这个才合适&#xff09; 前置1&#xff1a;VM安装Windows镜像 2.IT资产管理 3.会议室管理

构建一个rust生产应用读书笔记四(实战2)

此门课程学习采用actix-web框架完成一个生产级别的rust应用&#xff0c;在 actix-web 中&#xff0c;Extractors 是一个非常重要的概念&#xff0c;它们用于从传入的 HTTP 请求中提取特定的信息片段。actix-web 提供了多种内置的提取器&#xff0c;以满足常见的使用场景。说白了…

前端学习笔记-Vue篇-04

4 Vue中的ajax 4.1 解决开发环境Ajax跨域问题 vue脚手架配置代理 配置参考 | Vue CLI方法一&#xff1a;在vue.config.js中添加如下配置: module.exports {devServer: {proxy: http://localhost:4000} } 说明: 1.优点:配置简单&#xff0c;请求资源时直接发给前端(8080)即…

InnoDB事务系统(二):事务的实现

事务隔离性由锁来实现。原子性、一致性、持久性通过数据库的 redo log 和 undo log 来完成。 redo log 称为重做日志&#xff0c;用来保证事务的原子性和持久性。undo log 用来保证事务的一致性。 有的 DBA 或许会认为 undo 是 redo 的逆过程&#xff0c;其实不然。redo 和 u…

c++理解(三)

本文主要探讨c相关知识。 模板是对类型参数化 函数模板特化不是模板函数重载 allocator(空间配置器):内存开辟释放,对象构造析构 优先调用对象成员方法实现的运算符重载函数,其次全局作用域找 迭代器遍历访问元素,调用erase&#xff0c;insert方法后&#xff0c;当前位置到容器…

实训项目11基于51单片机的门禁监测系统设计

00 要求 基于51单片机和RFID模块实现门禁的设计。使之具有以下功能: 能够正常的读卡信息&#xff1b;在正常刷卡通过后&#xff0c;可以控制电子锁动作&#xff1b;在刷卡失败后&#xff0c;可以产生报警信号; 01 功能分析 读卡后会RFID会自动通过TXD&#xff08;串口&…

opencv——识别图片颜色并绘制轮廓

图像边缘检测 本实验要用到Canny算法&#xff0c;Canny边缘检测方法常被誉为边缘检测的最优方法。 首先&#xff0c;Canny算法的输入端应为图像的二值化结果&#xff0c;接收到二值化图像后&#xff0c;需要按照如下步骤进行&#xff1a; 高斯滤波。计算图像的梯度和方向。非极…

源码安装PHP-7.2.19

源码安装PHP-7.2.19 1.解压 tar -xjvf php-7.2.19.tar.bz2.编译 -prefix安装路径 cd php-7.2.19 ./configure --prefix/home/work/study 成功输出 3.make(构建) makemake testmake installlinux对php操作的一些命令 # 进入到php [rootvdb1 study]# cd php/ [rootvdb1 st…

数据库管理-第271期 Oracle 23ai:用MongoDB的方式来操作JSON二元性(20241214)

数据库管理271期 2024-12-14 数据库管理-第271期 Oracle 23ai&#xff1a;用MongoDB的方式来操作JSON二元性&#xff08;20241214&#xff09;1 初始化数据1.1 创建用户1.2 导入数据1.3 创建JSON关系二元性视图 2 创建ORDS服务2.1 下载JDK172.2 安装ORDS2.3 启用MongoDB API2.4…

2024 年的科技趋势

2024 年在科技领域有着诸多重大进展与突破。从人工智能、量子计算到基因组医学、可再生能源以及新兴技术重塑了众多行业。随着元宇宙等趋势的兴起以及太空探索取得的进步&#xff0c;未来在接下来的岁月里有望继续取得进展与突破。让我们来探讨一下定义 2024 年的一些关键趋势&…

WPF+MVVM案例实战与特效(三十八)- 封装一个自定义的数字滚动显示控件

文章目录 1、运行效果2、案例实现1、功能设计2、页面布局3、控件使用4、运行效果3、拓展:多数字自定义控件1、控件应用4、总结1、运行效果 在Windows Presentation Foundation (WPF)应用程序中,自定义控件允许开发者创建具有特定功能和外观的独特UI元素。本博客将介绍一个名…

ElasticSearch的自动补全功能(拼音分词器、自定义分词器、DSL实现自动补全查询、RestAPI实现自动补全查询)

文章目录 1. 什么是自动补全2. 拼音分词器2.1 初识拼音分词器2.2 下载拼音分词器2.3 安装拼音分词器2.4 测试拼音分词器 3. 自定义分词器3.1 拼音分词器存在的问题3.2 分词器&#xff08;analyzer&#xff09;的组成3.3 如何自定义分词器3.4 拼音分词器的可选参数3.5 配置自定义…

八股—Java基础(二)

目录 一. 面向对象 1. 面向对象和面向过程的区别&#xff1f; 2. 面向对象三大特性 3. Java语言是如何实现多态的&#xff1f; 4. 重载&#xff08;Overload&#xff09;和重写&#xff08;Override&#xff09;的区别是什么&#xff1f; 5. 重载的方法能否根据返回值类…

Java-08

类的抽象是将类的实现和使用分离, 而类的封装是将实现的细节封装起来并且对用户隐藏,用户只需会用就行。 类的合约指的是从类外可以访问的方法和数据域的集合以及与其这些成员如何行为的描述 isAlive()方法的返回值类型为布尔型&#xff08;Boolean&#xff09;。这个方法用于…

【MATLAB第109期】基于MATLAB的带置信区间的RSA区域敏感性分析方法,无目标函数

【MATLAB第108期】基于MATLAB的带置信区间的RSA区域敏感性分析方法&#xff0c;无目标函数 参考第64期文章【MATLAB第64期】【保姆级教程】基于MATLAB的SOBOL全局敏感性分析模型运用&#xff08;含无目标函数&#xff0c;考虑代理模型&#xff09; 创新点&#xff1a; 1、采…