OpenStack (T)部署trove

环境Openstack(T)

          CentOS Linux release 7.9.2009 (Core)

正文:

1.控制节点安装trove软件包

# yum install openstack-trove-guestagent openstack-trove python-troveclient  openstack-trove-ui –y

2.创建数据库,用户,endpint和API端点

#创建数据库
# mysql -u root -p
mysql> CREATE DATABASE trove;
mysql> GRANT ALL PRIVILEGES ON trove.* TO trove@'localhost' IDENTIFIED BY 'admin123';     mysql> GRANT ALL PRIVILEGES ON trove.* TO trove@'%' IDENTIFIED BY  'admin123';#创建用户
# openstack user create --domain default --password admin123 trove
# openstack role add --project service --user trove admin
# openstack service create --name trove --description "Database" database#创建endpoint和API端点---tenant_id不用进行改动
# openstack endpoint create --region RegionOne database public http:// controller:8779/v1.0/%\(tenant_id\)s
# openstack endpoint create --region RegionOne database internal http:// controller:8779/v1.0/%\(tenant_id\)s
# openstack endpoint create --region RegionOne database admin http:// controller:8779/v1.0/%\(tenant_id\)s

3.去/etc/trove/目录下 编辑如下四个配置文件

[root@controller trove]# cat trove-conductor.conf
[DEFAULT]
log_dir = /var/log/trove
log_file = trove-conductor.log
trove_auth_url = http://controller:5000/v3/ 
notifier_queue_hostname = controller
nova_proxy_admin_user = admin
nova_proxy_admin_pass = admin123
nova_proxy_admin_tenant_name = admin
rpc_backend = rabbit[oslo_messaging_rabbit]
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = admin123[database]
connection = mysql://trove:admin123@controller/trove
[root@controller trove]# cat trove.conf
[DEFAULT]
log_dir = /var/log/trove
log_file = trove-api.log
trove_auth_url = http://controller:5000/v3/ 
notifier_queue_hostname = controller
rpc_backend = rabbit
nova_proxy_admin_user = admin
nova_proxy_admin_pass = admin123
nova_proxy_admin_tenant_name = admin
nova_compute_service_type = compute
cinder_service_type = volumev2
network_driver = trove.network.neutron.NeutronDriver
default_neutron_networks = c44901e1-39a1-4336-8417-9de533a3f0fe
auth_strategy = keystone
add_addresses = True
network_label_regex = .*
api_paste_config = api-paste.ini[oslo_messaging_rabbit]
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = admin123[database]
connection = mysql://trove:admin123@controller/trove[keystone_authtoken]
auth_uri = http://controller:5000/v3/
auth_url = http://controller:5000/v3/
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = trove
password = admin123
[root@controller trove]# cat trove-guestagent.conf
[DEFAULT]
rpc_backend = rabbit
nova_proxy_admin_user = admin
nova_proxy_admin_pass = admin123
nova_proxy_admin_user = admin
nova_proxy_admin_tenant_id = 06d5998c61e64c0d8fbcfd4e961ecee8
trove_auth_url = http://controller:5000/v3/
swift_url = http://controller:8080/v1/AUTH_06d5998c61e64c0d8fbcfd4e961ecee8
os_region_name = RegionOne
swift_service_type = object-store
log_file = trove-guestagent.log
rabbit_password = admin123
rabbit_host = 192.168.222.10
rabbit_userid = openstack
rabbit_port = 5672[oslo_messaging_rabbit]
rabbit_host = 192.168.222.10
rabbit_userid = openstack
rabbit_password = admin123
[root@controller trove]# cat trove-taskmanager.conf
[DEFAULT]
log_dir = /var/log/trove
log_file = trove-taskmanager.log
trove_auth_url = http://controller:5000/v3/
nova_compute_url = http://controller:8774/v2.1
notifier_queue_hostname = controller
rpc_backend = rabbit
nova_proxy_admin_user = admin
nova_proxy_admin_pass = admin123
nova_proxy_admin_tenant_id = 06d5998c61e64c0d8fbcfd4e961ecee8
taskmanager_manager = trove.taskmanager.manager.Manager
notification_driver = messagingv2
network_driver = trove.network.neutron.NeutronDriver
default_neutron_networks = c44901e1-39a1-4336-8417-9de533a3f0fe
network_label_regex = .*
guest_config = /etc/trove/trove-guestagent.conf
guest_info = guest_info.conf
injected_config_location = /etc/trove/conf.d
cloudinit_location = /etc/trove/cloudinit[oslo_messaging_rabbit]
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = admin123[database]
connection = mysql://trove:admin123@controller/trove 

上述配置文件,host 密码 网络ID project_ID  auth_url 该替换的都要进行替换

下面详细说几个地方:

3.1.管理员项目的租户ID:

nova_proxy_admin_tenant_id = 06d5998c61e64c0d8fbcfd4e961ecee8



3.2.你要使用的网络ID

default_neutron_networks = c44901e1-39a1-4336-8417-9de533a3f0fe

3. 3.获取 Trove 认证 URL 

trove_auth_url = http://controller:5000/v3/

3.4.获取 Swift 服务 URL
swift_url = http://controller:8080/v1/AUTH_06d5998c61e64c0d8fbcfd4e961ecee8

4.同步数据库

# su -s /bin/sh -c "trove-manage db_sync" trove

执行完该命令如果出现错误,Command failed, please check log for more info

查看位于 /var/log/trove/下的日志文件

解决:

这个错误意味着在执行 `trove-manage db_sync` 命令时,Python 缺少 MySQL 数据库驱动程序。通常情况下,Trove 使用 SQLAlchemy 来与数据库进行交互,而 SQLAlchemy 又需要特定的数据库驱动程序来连接到数据库。在这种情况下,错误消息指出缺少名为 `MySQLdb` 的 Python 模块,这是 MySQL 数据库的一个常用驱动程序。要解决这个问题,你需要安装适用于 Python 2.7 的 MySQL 数据库驱动程序。如果你使用的是 Python 2.7,可以尝试使用以下命令来安装 `MySQLdb`:pip install MySQL-python (注意:没有pip 就 yum install )或者,如果你使用的是 Python 3,可以安装 `mysqlclient`:
pip install mysqlclient安装完成后,再次尝试运行 `trove-manage db_sync` 命令,应该就不会再出现缺少 MySQLdb 模块的错误了。

5.启动服务

# service httpd restart
# systemctl enable openstack-trove-api.service openstack-trove-taskmanager.service openstack-trove-conductor.service
# systemctl restart openstack-trove-api.service openstack-trove-taskmanager.service openstack-trove-conductor.service

OK!!!

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

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

相关文章

2024-04-12 问AI: 在深度学习中,什么是参数,什么是超参数?

文心一言 在深度学习中,参数和超参数是两个非常重要的概念,它们在模型的训练和调优过程中起着关键的作用。以下是它们的基本定义和区别: 参数(Parameters): 参数是模型在训练过程中学习的变量。它们是从数…

C++11 设计模式3. 工厂方法模式

简单工厂模式的遗留问题 //从上面的代码可以看到,简单工厂模式确实实现了new 出来具体对象, 和 业务逻辑的分离, //但是不符合 "开闭原则" //"开闭原则"说的是代码扩展性问题——对扩展开放,对修改关…

如何在OceanBase v4.2 中快速生成随机数据

在使用传统数据库如 MySQL 和 Oracle 时,由于缺乏多样化的随机数据生成方案,或者实现成本过高,构造随机数据的开发成本受到了影响。OceanBase在老版本中虽然有相应的解决方案,但语法复杂和性能较差等问题仍然存在。 现在&#xf…

【漏洞复现】润乾报表平台 InputServlet接口处存在任意文件上传漏洞

免责声明:文章来源互联网收集整理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该…

报错[Vue warn]: $attrs is readonly. $listeners is readonly.

可能是加载了多个Vue实例导致,解决方法 vue.config.js chainWebpack: config > {config.resolve.alias.set(, resolve(src)).set(vue, resolve(./node_modules/vue))},然后重新运行项目即可

【.net core】【sqlsugar】联表查询与实体自动映射语法

官方文档:联表查询、关联查询、JoinTable、连表查询、Left Join - SqlSugar 5x - .NET果糖网 Join用法:语法糖2 Select 用法:自动映射 //类A 数据库字段与类成员一致 public class ClassA{//主键IDpublic int id{get;set;}//名称public st…

车内AR互动娱乐解决方案,打造沉浸式智能座舱体验

美摄科技凭借其卓越的创新能力,为企业带来了革命性的车内AR互动娱乐解决方案。该方案凭借自研的AI检测和渲染引擎,打造出逼真的数字形象,不仅丰富了车机娱乐内容,更提升了乘客与车辆的互动体验,让每一次出行都成为一场…

C语言 循环控制——while和do-while语句

目录 whiel语句 do-while语句 while与do-while的区别 计数控制的循环 ​编辑标记控制的循环 whiel语句 do-while语句 while与do-while的区别 计数控制的循环 标记控制的循环

怎么构建临床知识图谱?

怎么构建临床知识图谱? 构建临床知识图谱传统临床指南的局限性决策的不确定性和个体差异构建真实临床知识图谱构建真实世界的临床事件图谱基于书本抽取的知识来自哪些书本?如何保证这些知识是最新的知识?如何不断融入最新的医学研究进展,从而…

挖掘未来:私有LTE/5G网络驱动智慧矿山的自动化

私有LTE/5G网络为世界上一些最偏远的角落提供无线连接。如果没有无线通信网络,各行业就无法满足增加产量、降低运营成本和减少环境破坏的需求。 在本案例研究中,我们着眼于自动化如何改变无线网络的动态。智慧矿山要求运营商无缝集成多个系统和应用程序…

探索Web3的奇迹:数字时代的新前景

在数字化时代的潮流中,我们不可避免地迎来了一个全新的篇章——Web3时代的到来。在这个时代中,区块链技术作为数字化世界的核心,正在重塑着我们的生活方式、经济模式以及社会结构。在Web3时代,我们将目睹着一个以去中心化、透明化…

32.WEB渗透测试-数据传输与加解密(6)

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于: 易锦网校会员专享课 上一个内容:31.WEB渗透测试-数据传输与加解密(5) 关于discuz3.5的源码内容和…

LeetCode-Java:151.反转字符串当中的单词

文章目录 题目补充知识ArrayList动态数组StringBuilder类 解①穷举法②穷举法改进③双指针 题目 给你一个字符串 s ,请你反转字符串中 单词 的顺序。 单词 是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的 单词 分隔开。 返回 单词 顺序颠倒且 单…

小型社区与园区如何选购合适的停车场道闸系统?需注意什么

小型社区和园区停车场通常面临着空间有限、预算有限以及车流量相对较小的挑战。这些特点要求停车场的管理系统既要经济实用,又要能够满足基本的车辆管理需求,如安全性、通行效率和便捷性。针对这些特点,选择合适的停车道闸系统成为提高管理效…

天诚物联网锁亮相福州南京沈阳西安展会,与您见证AIoT行业发展

目光灼灼,步履不辍。自4月1日第七届CCLE中国教育后勤展览会一别,全场景AIoT解决方案服务商——江苏新巢天诚智能技术有限公司(以下简称“天诚”)打造的校园物联网锁软硬一体化解决方案获得了诸多准意向代理商、集成商同仁们的咨询…

2011年认证杯SPSSPRO杯数学建模B题(第二阶段)生物多样性的评估全过程文档及程序

2011年认证杯SPSSPRO杯数学建模 B题 生物多样性的评估 原题再现: 2010 年是联合国大会确定的国际生物多样性年。保护地球上的生物多样性已经越来越被人类社会所关注,相关的大规模科研和考察计划也层出不穷。为了更好地建立国际交流与专家间的合作&…

【网络安全】网络安全,你我同行——网络安全指南请查收~

网络是一把双刃剑,在给我们带来便捷生活的同时,也埋下了种种安全隐患。作为网络的亲身参与者,我们应该主动学习网络安全知识。快让我们一起来看看,本期安全小讲堂带来了哪些网络安全知识吧~ 01 常见网络安全隐患 网络安全问题无…

Docker镜像,什么是Docker镜像,Docker基本常用命令

docker镜像 1.1什么是镜像,镜像基础 1.1.1 镜像的简介 镜像是一种轻量级,可执行的独立软件包,也可以说是一个精简的操作系统。镜像中包含应用软件及应用软件的运行环境,具体来说镜像包含运行某个软件所需的所有内容,…

记一次逻辑漏洞拿下目标站点

开局某平台登录框 可做尝试手法 1、弱口令 2、万能密码 3、复杂密码逻辑绕过 4、登录框逻辑绕过 5、登录框注入 正文 某通用平台,系xxx科技公司开发全套模板通用系统,演示站踩点弱口令,这里主要梳理踩点思路 1、某接口未授权访问读系统用户…

20240406-算法复习打卡day46||● 139.单词拆分 ● 关于多重背包,你该了解这些! ● 背包问题总结篇!

139.单词拆分 令word s中从 j 处开始&#xff0c;长度 i - j 的字符串 如果wordSet.find(word) ! wordSet.end()&#xff0c;说明word在wordSet中&#xff0c;当前d[j]为true时&#xff0c;符合条件 class Solution { public:bool wordBreak(string s, vector<string>&…