先电2.4的openstack搭建

先电2.4版本的openstack,前期虚拟机部署参考上一篇2.2版本,基本步骤是一样的,准备两个镜像文件CentOS-7.5-x86_64-DVD-1804.iso,XianDian-IaaS-V2.4.iso

[root@controller ~]# cat /etc/sysconfig/network-scripts/ifcfg-eno16777736
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777736
UUID=0f71f3b8-13dc-4d79-952d-d8e6157bdc4e
DEVICE=eno16777736
ONBOOT=yes
PEERDNS=yes
PEERROUTES=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPADDR=192.168.10.10
PREFIX=24
[root@controller ~]# cat /etc/sysconfig/network-scripts/ifcfg-eno33554960
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eno33554960
UUID=148dcef1-5450-4120-ab5f-c8ca36b8f827
DEVICE=eno33554960
ONBOOT=yes
PREFIX=24
两边虚拟机在设置开机的时候创建了第二块网卡,这样进入network的目录下,网卡的配置文件就已经存在了
主机模式,static,不要设置网关,NAT模式dhcp这样就可以访问外网

hostnamectl set-hostname controller
ctrl+d 可以退出重新登陆,主机localhost的名字就被修改了,方便分辨两台虚拟机

[root@controller ~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.10.10 controller
192.168.10.20 compute

控制节点连接fx上传两个dvd,再进行挂载
[root@localhost ~]# mkdir /opt/centos7.2
[root@localhost ~]# mkdir /opt/iaas
[root@localhost ~]# mount /root/CentOS-7.5-x86_64-DVD-1804.iso /opt/centos7.2
mount: /dev/loop0 is write-protected, mounting read-only
[root@localhost ~]# mount /root/XianDian-IaaS-V2.4.iso /opt/iaas/
mount: /dev/loop1 is write-protected, mounting read-only

[root@controller ~]# rm -rf /etc/yum.repos.d/CentOS- *
[root@controller ~]# cat > /etc/yum.repos.d/local.repo <<EOF

[centos]
name=centos
baseurl=file:///opt/centos7.2
gpgcheck=0
enabled=1
[iaas]
baseurl=file:///opt/iaas/iaas-repo
gpgcheck=0
enabled=1
EOF

[root@controller ~]# yum clean all
Loaded plugins: fastestmirror, langpacks
Repository ‘iaas’ is missing name in configuration, using id
Cleaning repos: base centos extras iaas updates
Cleaning up everything
[root@controller ~]# yum repolist
看到repolist: 23,680
在控制节点,安装ftp服务
[root@localhost ~]# yum install vsftpd -y
出现complete以后,修改配置文件(这里如果报错,没有镜像源,则回去检查修改ip的地方dns配置了没有,如果是报错another app,运行下句
rm -f /var/run/yum.pid

Complete!
[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf
anon_root=/opt
[root@localhost ~]# systemctl restart vsftpd
两边的节点关闭防火墙
[root@localhost ~]# setenforce 0
[root@localhost ~]# iptables -F
[root@localhost ~]# iptables -X
[root@localhost ~]# iptables -Z
[root@localhost ~]# systemctl stop firewalld

在compute节点也检查一下yum
[root@compute ~]# yum clean all
Loaded plugins: fastestmirror, langpacks
Repository ‘iaas’ is missing name in configuration, using id
Cleaning repos: base centos extras iaas updates
Cleaning up everything
[root@compute ~]# yum repolist
看到repolist: 23,680

安装同步器
[root@controller ~]# yum install -y chrony
[root@controller ~]# 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 iburstserver controller iburst
allow 192.168.10.0/24# 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# Enable kernel synchronization of the real-time clock (RTC).
rtcsync# Enable hardware timestamping on all interfaces that support it.
#hwtimestamp *

“/etc/chrony.conf” 41L, 1160C written
[root@controller ~]# systemctl restart chronyd
[root@controller ~]# systemctl enable chronyd

控制节点一样
[root@compute ~]# yum install -y chrony
[root@compute ~]# 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 iburstserver controller 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# 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
"/etc/chrony.conf" 40L, 1138C written

[root@compute ~]# systemctl restart chronyd
[root@compute ~]# systemctl enable chronyd
[root@compute ~]# chronyc sources -v

210 Number of sources = 1.-- Source mode  '^' = server, '=' = peer, '#' = local clock./ .- Source state '*' = current synced, '+' = combined , '-' = not combined,
| /   '?' = unreachable, 'x' = time may be in error, '~' = time too variable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||      Reachability register (octal) -.           |  xxxx = adjusted offset,
||      Log2(Polling interval) --.      |          |  yyyy = measured offset,
||                                \     |          |  zzzz = estimated error.
||                                 |    |           \
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^? controller                    0   6     0     -     +0ns[   +0ns] +/-    0ns

可见已经同步
两边
[root@localhost ~]# yum install iaas-xiandian -y
[root@controller ~]# vi /etc/xiandian/openrc.sh

##--------------------system Config--------------------##
##Controller Server Manager IP. example:x.x.x.x
HOST_IP=192.168.10.10##Controller HOST Password. example:000000
HOST_PASS=000000##Controller Server hostname. example:controller
HOST_NAME=controller##Compute Node Manager IP. example:x.x.x.x
HOST_IP_NODE=192.168.10.20##Compute HOST Password. example:000000
HOST_PASS_NODE=000000##Compute Node hostname. example:compute
HOST_NAME_NODE=compute##--------------------Chrony Config-------------------##
##Controller network segment IP.  example:x.x.0.0/16(x.x.x.0/24)
network_segment_IP=192.168.10.0/24##--------------------Rabbit Config ------------------##
##user for rabbit. example:openstack
RABBIT_USER=openstack##Password for rabbit user .example:000000
RABBIT_PASS=000000##--------------------MySQL Config---------------------##
##Password for MySQL root user . exmaple:000000
DB_PASS=000000##--------------------Keystone Config------------------##
##Password for Keystore admin user. exmaple:000000
DOMAIN_NAME=demo
ADMIN_PASS=000000
DEMO_PASS=000000##Password for Mysql keystore user. exmaple:000000
KEYSTONE_DBPASS=000000##--------------------Glance Config--------------------##
##Password for Mysql glance user. exmaple:000000
GLANCE_DBPASS=000000##Password for Keystore glance user. exmaple:000000
GLANCE_PASS=000000##--------------------Nova Config----------------------##
##Password for Mysql nova user. exmaple:000000
NOVA_DBPASS=000000##Password for Keystore nova user. exmaple:000000
NOVA_PASS=000000##--------------------Neturon Config-------------------##
##Password for Mysql neutron user. exmaple:000000
NEUTRON_DBPASS=000000##Password for Keystore neutron user. exmaple:000000
NEUTRON_PASS=000000##metadata secret for neutron. exmaple:000000
METADATA_SECRET=000000##Tunnel Network Interface. example:x.x.x.x
INTERFACE_IP=192.168.10.10##External Network Interface. example:eth1
INTERFACE_NAME=eno33554960##External Network The Physical Adapter. example:provider
Physical_NAME=provider##First Vlan ID in VLAN RANGE for VLAN Network. exmaple:101
minvlan=101##Last Vlan ID in VLAN RANGE for VLAN Network. example:200
maxvlan=200##--------------------Cinder Config--------------------##
##Password for Mysql cinder user. exmaple:000000
CINDER_DBPASS=000000##Password for Keystore cinder user. exmaple:000000
CINDER_PASS=000000##Cinder Block Disk. example:md126p3
BLOCK_DISK=sdb1##--------------------Swift Config---------------------##
##Password for Keystore swift user. exmaple:000000
SWIFT_PASS=000000##The NODE Object Disk for Swift. example:md126p4.
OBJECT_DISK=sdb2##The NODE IP for Swift Storage Network. example:x.x.x.x.
STORAGE_LOCAL_NET_IP=192.168.10.20##--------------------Heat Config----------------------##
##Password for Mysql heat user. exmaple:000000
HEAT_DBPASS=000000##Password for Keystore heat user. exmaple:000000
HEAT_PASS=000000##--------------------Zun Config-----------------------##
##Password for Mysql Zun user. exmaple:000000
ZUN_DBPASS=000000##Password for Keystore Zun user. exmaple:000000
ZUN_PASS=000000##Password for Mysql Kuryr user. exmaple:000000
KURYR_DBPASS=000000##Password for Keystore Kuryr user. exmaple:000000
KURYR_PASS=000000##--------------------Ceilometer Config----------------##
##Password for Gnocchi ceilometer user. exmaple:000000
CEILOMETER_DBPASS=000000##Password for Keystore ceilometer user. exmaple:000000
CEILOMETER_PASS=000000##--------------------AODH Config----------------##
##Password for Mysql AODH user. exmaple:000000
AODH_DBPASS=000000##Password for Keystore AODH user. exmaple:000000
AODH_PASS=000000##--------------------Barbican Config----------------##
##Password for Mysql Barbican user. exmaple:000000
BARBICAN_DBPASS=000000##Password for Keystore Barbican user. exmaple:000000
BARBICAN_PASS=000000
"/etc/xiandian/openrc.sh" 142L, 3877C written

[root@controller ~]# scp /etc/xiandian/openrc.sh compute://etc/xiandian
The authenticity of host ‘compute (192.168.10.20)’ can’t be established.
ECDSA key fingerprint is f7:8d:08:f9:ba:95:6c:a0:6d:62:6d:f8:be🆎6d:80.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘compute,192.168.10.20’ (ECDSA) to the list of known hosts.
root@compute’s password:
openrc.sh
去计算节点修改tunnel,改成自己节点的IP,其余不用修改
[root@compute ~]# vi /etc/xiandian/openrc.sh
##Tunnel Network Interface. example:x.x.x.x
INTERFACE_IP=192.168.10.20
两边都source一下使文件生效
[root@compute ~]# source /etc/xiandian/openrc.sh
[root@controller ~]# source /etc/xiandian/openrc.sh
两个节点分别运行
[root@localhost ~]# iaas-pre-host.sh
完成以后reboot,两边的提示不同,control节点,reboot 的前面有一句提示然后才是complete
compute的节点reboot的上一句就是complete

重启以后,重新远程连接,再mount一次,如果提示[root@controller ~]# mount /root/CentOS-7.5-x86_64-DVD-1804.iso /opt/centos7.2
mount: special device /root/CentOS-7.5-x86_64-DVD-1804.iso does not exist,则连接fx再上传一次
打开ftp,关闭防火墙

[root@controller ~]# mount /root/CentOS-7.5-x86_64-DVD-1804.iso /opt/centos7.2
mount: /dev/loop0 is write-protected, mounting read-only
[root@controller ~]# mount /root/XianDian-IaaS-V2.4.iso /opt/iaas/
mount: /dev/loop1 is write-protected, mounting read-only
[root@controller~]# systemctl restart vsftpd
两边的节点关闭防火墙
[root@localhost ~]# setenforce 0
[root@localhost ~]# iptables -F
[root@localhost ~]# iptables -X
[root@localhost ~]# iptables -Z
[root@localhost ~]# systemctl stop firewalld
如果关防火墙的时候关不了,提示Failed to stop firewalld.service: Unit firewalld.service not loaded.,需要重新安装yum install firewalld
控制节点
安装数据库
[root@controller ~]# iaas-install-mysql.sh
安装keystone认证服务
[root@controller ~]# iaas-install-keystone.sh
安装Glance镜像服务
[root@controller ~]# iaas-install-glance.sh
安装Nova计算服务
[root@controller ~]# iaas-install-nova-controller.sh
[root@compute ~]# iaas-install-nova-compute.sh

安装Neutron网络服务
[root@controller ~]# iaas-install-neutron-controller.sh
[root@compute ~]# iaas-install-neutron-compute.sh
安装完以后,有的情况是出现complete之后就卡住,再等一会就断连,进入虚拟机发现,第二块网卡的BOOTPROTO=none,将其改成dhcp,ip会恢复,重新连接,新的版本里不需要在这个阶段安装gre的网络配置,所以直接进行下一步
安装Dashboard服务
[root@controller ~]# iaas-install-dashboard.sh
打开浏览器
在这里插入图片描述

创建云主机,需要源

[root@controller ~]# cd /opt/iaas/images
[root@controller images]# ls
CentOS_6.5_x86_64_XD.qcow2 CentOS_7.2_x86_64_XD.qcow2
CentOS7_1804.tar CentOS_7.5_x86_64_XD.qcow2
[root@controller images]# source /etc/keystone/admin-openrc.sh
[root@controller images]# glance image-create --name “centos7.2” --disk-format qcow2 --container-format bare --progress < CentOS_7.2_x86_64_XD.qcow2

[=============================>] 100%
+------------------+--------------------------------------+
| Property         | Value                                |
+------------------+--------------------------------------+
| checksum         | ea197f4c679b8e1ce34c0aa70ae2a94a     |
| container_format | bare                                 |
| created_at       | 2024-05-02T16:00:36Z                 |
| disk_format      | qcow2                                |
| id               | e01f143d-8da1-4af2-9f6e-c3802beae16b |
| min_disk         | 0                                    |
| min_ram          | 0                                    |
| name             | centos7.2                            |
| owner            | 0b840f478fee4a1cb0ba136f96ec3a74     |
| protected        | False                                |
| size             | 400752640                            |
| status           | active                               |
| tags             | []                                   |
| updated_at       | 2024-05-02T16:00:48Z                 |
| virtual_size     | None                                 |
| visibility       | shared                               |
+------------------+--------------------------------------+

[root@controller images]# glance image-list

+--------------------------------------+-----------+
| ID                                   | Name      |
+--------------------------------------+-----------+
| e01f143d-8da1-4af2-9f6e-c3802beae16b | centos7.2 |
+--------------------------------------+-----------+

回到浏览器,创建云主机类型
在这里插入图片描述
再创建网络,如图填完然后下一步下一步,完成
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
创建内网,下一步下一步创建
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
完成后
在这里插入图片描述
创建路由
在这里插入图片描述
创建完成后点击路由的名字进入,选接口,增加接口,点击提交
在这里插入图片描述
成功后可以查看网络拓扑,两个网络被连接起来
创建云主机
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
点击创建。第一次创建时间较长,等到看状态是运行
在这里插入图片描述
上图可见,云主机已经创建完毕,但是这个时候的云主机只是一台不能访问外网的虚拟机,如果需要与外部相连,需要绑定浮动ip
在云主机的动作处,选择绑定浮动ip,
在这里插入图片描述
点击+,从外部网络分配,点击分配IP,点击关联
在这里插入图片描述
在这里插入图片描述
此时绑定的ip在cmd中依然ping不通,更改安全组规则,default管理规则,所有的ICMP,TCP,UDP的入口,出口都添加一共6个
在这里插入图片描述
添加规则
在这里插入图片描述
在这里插入图片描述
添加之后如图
在这里插入图片描述

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

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

相关文章

华为OD机试 - 小扇和小船的数字游戏 - 二进制(Java 2024 C卷 200分)

华为OD机试 2024C卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷C卷&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;每一题都有详细的答题思路、详细的代码注释、样例测试…

论文笔记(四十五)Attention Is All You Need

Attention Is All You Need 文章概括摘要1. 介绍2. 背景3. 模型架构3.1 编码器和解码器堆栈3.2 Attention3.2.1 按比例点积Attention3.2.2 Multi-Head Attention3.2.3 注意力在模型中的应用 3.3 定位前馈网络3.4 嵌入与 Softmax3.5 位置编码 4 为什么 Self-Attention5. Trainin…

ssm104园区停车管理系统+jsp

园区停车管理系统的设计与实现 摘 要 网络技术和计算机技术发展至今&#xff0c;已经拥有了深厚的理论基础&#xff0c;并在现实中进行了充分运用&#xff0c;尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代&#xff0c;所以对于信息的宣传和管…

P9422 [蓝桥杯 2023 国 B] 合并数列

P9422 [蓝桥杯 2023 国 B] 合并数列 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 用队列即可 当两个队列队首&#xff1a;a b &#xff0c;弹出 当a < b&#xff0c;把a加给其后一个元素&#xff0c;弹出a 当b < a&#xff0c;把b加给其后一个元素&#xff0c;弹出…

[初阶数据结构】时间复杂度与空间复杂度

前言 &#x1f4da;作者简介&#xff1a;爱编程的小马&#xff0c;正在学习C/C&#xff0c;Linux及MySQL。 &#x1f4da;本文收录于初阶数据结构系列&#xff0c;本专栏主要是针对时间、空间复杂度&#xff0c;顺序表和链表、栈和队列、二叉树以及各类排序算法&#xff0c;持续…

无人机+无人车:自组网协同技术及应用前景详解

无人车&#xff0c;也被称为自动驾驶汽车、电脑驾驶汽车或轮式移动机器人&#xff0c;是一种通过电脑系统实现无人驾驶的智能汽车。这种汽车依靠人工智能、视觉计算、雷达、监控装置和全球定位系统协同合作&#xff0c;使得电脑可以在没有任何人类主动操作的情况下&#xff0c;…

C++基础——输入输出(文件)

一、标准输入输出流 C 的输入输出是程序与用户或外部设备&#xff08;如文件、网络等&#xff09;之间交换信息的过程。 C 提供了丰富的标准库来支持这种交互&#xff0c;主要通过流的概念来实现。 流&#xff1a;抽象概念&#xff0c;表示一连串的数据&#xff08;字节或字…

typescript:vscode的settings配置文件配置ts语法提示

typescript&#xff1a;vscode的settings配置文件配置ts语法提示 1 找到vscode左下角的齿轮按钮 2 点击Settings&#xff08;或者快捷键ctrl,&#xff09;&#xff1a; 点击右上角的Open Settings(JSON)按钮打开配置文件&#xff1a; 或者ctrlshiftp&#xff0c;搜索settings&…

展开说说:Android实现多线程几种方式

1、线程是什么 关于线程&#xff0c;Android开发经常遇到的一个和线程相关的异常报错&#xff1a;NetworkOnMainThreadException&#xff0c;因为网络请求不可以运行在主线程&#xff08;又称UI线程&#xff09;。和网络请求一样的还有I/O操作、数据库操作等耗时任务一样都只能…

奈氏准则和香农定理

一、奈奎斯特和香农 哈里奈奎斯特&#xff08;Harry Nyquist&#xff09;(左) 克劳德艾尔伍德香农&#xff08;Claude Elwood Shannon&#xff09;(右) 我们应该在心里记住他们&#xff0c;记住所有为人类伟大事业做出贡献的人&#xff0c;因为他们我们的生活变得越来越精彩&…

使用xshell工具连接ubuntu的root账户被拒绝的解决方法

问题描述&#xff1a; 我在使用xshell工具远程连接Ubuntu虚拟机的过程中&#xff0c;如果连接的是的普通用户则xshell工具可以正常连接&#xff0c;但是当我向连接ubuntu系统的root用户&#xff0c;即便是密码输入正确但还是不能连接成功。不能连接成功的截图如下&#xff1a; …

从零开始学AI绘画,万字Stable Diffusion终极教程(二)

【第2期】关键词 欢迎来到SD的终极教程&#xff0c;这是我们的第二节课 这套课程分为六节课&#xff0c;会系统性的介绍sd的全部功能&#xff0c;让你打下坚实牢靠的基础 1.SD入门 2.关键词 3.Lora模型 4.图生图 5.controlnet 6.知识补充 在第一节课里面&#xff0c;我们…

PS 2018

软件安装 文件太大&#xff0c;分批上传了&#xff0c;后续下载下来文件目录是这样的&#xff0c; 三个文件夹.7z 分批上传&#xff0c;exe也压缩分批上传&#xff0c; 其中products文件夹太大&#xff0c;里面子目录继续压缩分批上传 都下好了&#xff0c;就exe执行安装就行…

如何使用提示测试为LLMs构建单元测试?

原文地址&#xff1a;how-to-build-unit-tests-for-llms-using-prompt-testing 确保您的人工智能交付&#xff1a;快速测试完美生成应用程序的基本指南 2024 年 4 月 26 日 如果你曾经编写过软件&#xff0c;你就会知道测试是开发过程中必不可少的一部分。特别是单元测试&#…

Git推送本地项目到gitee远程仓库

Git 是一个功能强大的分布式版本控制系统&#xff0c;它允许多人协作开发项目&#xff0c;同时有效管理代码的历史版本。开发者可以克隆一个公共仓库到本地&#xff0c;进行更改后将更新推送回服务器&#xff0c;或从服务器拉取他人更改&#xff0c;实现代码的同步和版本控制。…

BUUCTF:Web 解析(一)

前言 Buuctf Web 是一个在线安全挑战平台&#xff0c;旨在提高参与者对网络安全的理解和实践能力。本文将详细介绍 Buuctf Web 的特点、挑战和机遇&#xff0c;帮助读者更好地了解这一领域。 一、Buuctf Web 的特点 多样化的挑战场景&#xff1a;Buuctf Web 提供了多种挑战场…

金属表面粗糙度对信号的影响

在进行PCB的传输线设计时&#xff0c;如果希望仿真结果更加贴合于实际的效果&#xff0c;就需要考虑很多的附加因素&#xff0c;比如&#xff0c;真实的叠构参数、介电常数、损耗角正切值、蚀刻因子、金属表面粗糙度、玻纤效应等&#xff0c;在常规的信号仿真中&#xff0c;前三…

springboot整合mybatis配置多数据源(mysql/oracle)

目录 前言导入依赖坐标创建mysql/oracle数据源配置类MySQLDataSourceConfigOracleDataSourceConfig application.yml配置文件配置mysql/oracle数据源编写Mapper接口编写Book实体类编写测试类 前言 springboot整合mybatis配置多数据源&#xff0c;可以都是mysql数据源&#xff…

基于RK1126的小型化低功耗AI相机,支持人体特征识别、人脸特征识别、案例帽识别等

提供可定制的⼀套 AI相机软硬件开发平台&#xff0c; 硬件采⽤ RockchipRV1126处理器解决 ⽅案&#xff0c;可选择搭配 SonyIMX系列传感器&#xff0c;POE供电与数据传输&#xff0c;采⽤ 38板标准结构设计&#xff0c;快速按需定制外壳&#xff0c;⽀撑从开发到验证到批量⽣产…