OpenStack双节点部署—M Trove(数据库服务)

一、数据库配置

Controller节点

# mysql -u root -p123456
MariaDB [(none)]> CREATE DATABASE trove;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON trove.* TO 'trove'@'localhost' IDENTIFIED BY '123456';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON trove.* TO 'trove'@'%' IDENTIFIED BY '123456';
MariaDB [(none)]> exit

二、创建服务凭证和API端点

Controller节点

1.创建服务凭证

# . /root/admin-openrc

# openstack user create --domain default --password-prompt trove
User Password:
Repeat User Password:

# openstack role add --project service --user trove admin
# openstack service create --name trove --description "Database" database

2.创建API端点

# 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

三、安装并配置trove服务

1.安装Trove相关包

# yum install -y openstack-trove python-troveclient

在这里插入图片描述
由于缺少包,因此我们需要修改一下yum源,此时需要联网
1)添加[mitaka-hang]

# vi  /etc/yum.repos.d/local.repo 
[centos]
name=centos
baseurl=file:///opt/centos
gpgcheck=0
enabled=1
[mitaka]
name=mitaka
baseurl=file:///opt/mitaka/Openstack-Mitaka
gpgcheck=0
enabled=1
[mitaka-hang]
name=mitaka-hang
baseurl=http://mirror.fuel-infra.org/pkgs/centos-7-mos9.2mu1/cloud/x86_64/openstack-mitaka/
gpgcheck=0
enabled=1

2)清除yum源缓存

# yum clean all
# yum makecache

3)安装Trove相关包

# yum install -y openstack-trove python-troveclient

2.修改相关配置文件

:修改配置文件时,找到相应选项进行修改,没有该选项时再选择适当位置添加,随意添加选项容易造成服务启动失败
1)编辑trove.conf、trove-taskmanager.conf、trove-conductor.conf文件,内容相同

# vi /etc/trove/trove.conf
# vi /etc/trove/trove-taskmanager.conf
# vi /etc/trove/trove-conductor.conf

[DEFAULT]
rpc_backend=rabbit
log_dir = /var/log/trove
trove_auth_url = http://controller:5000/v2.0
nova_compute_url = http://controller:8774/v2
cinder_url = http://controller:8776/v1
swift_url = http://controller:8080/v1/AUTH_
neutron_url = http://controller:9696/
notifier_queue_hostname = controller

[database]
connection = mysql+pymysql://trove:123456@controller/trove

[oslo_messaging_rabbit]
rabbit_host = controller
rabbit_userid = openstack
rabbit_password = 123456
rabbit_port = 5672

2)校对api-paste.ini文件(可以先把该文件备份,然后将内容复制、粘贴进去)

# mv /etc/trove/api-paste.ini /etc/trove/api-paste-backup.ini

# vi /etc/trove/api-paste.ini
[composite:trove]
use = call:trove.common.wsgi:versioned_urlmap
/: versions
/v1.0: troveapi

[app:versions]
paste.app_factory = trove.versions:app_factory

[pipeline:troveapi]
pipeline = cors faultwrapper osprofiler authtoken authorization contextwrapper ratelimit extensions troveapp
#pipeline = debug extensions troveapp

[filter:extensions]
paste.filter_factory = trove.common.extensions:factory

[filter:authtoken]
paste.filter_factory = keystonemiddleware.auth_token:filter_factory

[filter:authorization]
paste.filter_factory = trove.common.auth:AuthorizationMiddleware.factory

[filter:cors]
paste.filter_factory = oslo_middleware.cors:filter_factory
oslo_config_project = trove

[filter:contextwrapper]
paste.filter_factory = trove.common.wsgi:ContextMiddleware.factory

[filter:faultwrapper]
paste.filter_factory = trove.common.wsgi:FaultWrapper.factory

[filter:ratelimit]
paste.filter_factory = trove.common.limits:RateLimitingMiddleware.factory

[filter:osprofiler]
paste.filter_factory = osprofiler.web:WsgiMiddleware.factory

[app:troveapp]
paste.app_factory = trove.common.api:app_factory

#Add this filter to log request and response for debugging
[filter:debug]
paste.filter_factory = trove.common.wsgi:Debug

3)编辑trove.conf文件

# vi /etc/trove/trove.conf

auth_strategy = keystone

# Config option for showing the IP address that nova doles out
add_addresses = True
network_label_regex =  .*
api_paste_config = /etc/trove/api-paste.ini

[keystone_authtoken]
auth_uri = http://controller:5000
auth_url = http://controller:35357
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = trove
password = 123456

4)编辑trove-taskmanager.conf文件

# vi /etc/trove/trove-taskmanager.conf

[DEFAULT]
# Configuration options for talking to nova via the novaclient.
# These options are for an admin user in your keystone config.
# It proxy's the token received from the user to send to nova
# via this admin users creds,
# basically acting like the client via that proxy token.
nova_proxy_admin_user = admin
nova_proxy_admin_pass = 123456
nova_proxy_admin_tenant_name = service
taskmanager_manager = trove.taskmanager.manager.Manager

5)编辑trove-guestagent.conf文件

# vi /etc/trove/trove-guestagent.conf
rabbit_host = controller
rabbit_password = 123456
nova_proxy_admin_user = admin
nova_proxy_admin_pass = 123456
nova_proxy_admin_tenant_name = service
trove_auth_url = http://controller:35357/v2.0

3.同步数据库

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

4.启动trove服务并设置开机自启

# systemctl enable openstack-trove-api.service \
   openstack-trove-taskmanager.service \
   openstack-trove-conductor.service

# systemctl start openstack-trove-api.service \
   openstack-trove-taskmanager.service \
   openstack-trove-conductor.service

三、验证操作,并创建数据库实例

1.上传mysql镜像

# . /root/admin-openrc
# trove list
# glance image-create --name "mysqlTest" --disk-format qcow2 --container-format bare --file MySQL_5.6_XD.qcow2

在这里插入图片描述

# su -s /bin/sh -c "trove-manage --config-file /etc/trove/trove.conf datastore_update mysql ''" trove
# su -s /bin/sh -c "trove-manage --config-file /etc/trove/trove.conf \
   datastore_version_update \
   mysql mysql-5.6 bd06bfb8-0018-4c9a-84c5-3c6308ddfbc6 '' 1" trove

2.创建MySQL数据库

各种数据库实例的最低需求

Database	RAM (MB)	Disk (GB)	VCPUs
MySQL	     512	     5	         1
Cassandra	 2048	     5	         1
MongoDB	     1024	     5	         1
Redis	     512	     5	         1

1)查看实例类型

# openstack flavor list

2)创建一个适合mysql的运行实例
实例名:mysql_minimum
实例ID:必须使用尚未使用的ID,在本例中,ID使用的是1到5,因此使用ID 6
RAM: 512MB
Disk:5GB
VCPU:1

# openstack flavor create mysql-minimum --id 6 --ram 512 --disk 5 --vcpus 1 

3)使用trove创建一个mysql数据库
数据库名:mysql_instance_1
数据库实例:6
卷大小:1GB
myDB数据库
数据库基于mysql数据存储和mysql-5.6 datastore_version
用户为userA,密码为password

# trove create mysql_instance_2 6 --size 1 --databases myDB_2 \
 --users userA:password --datastore_version mysql-5.6 \
  --datastore mysql

# trove show 585bbf26-4343-4b0b-8330-b82bf27eb291

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_40791253/article/details/84192410
今日推荐